Saturday, April 4, 2009

First SQLServerCentral Article

Whoo Hooo! I got my first article published by SQLServerCentral.com last week on writing KML files using the FOR XML clause.

You can check out the article here SQLServerCentral.com.

This article stimulated some interesting feedback from readers and of course a few corrections, but it is really exciting to have an article published by such a notable publisher in this field.

One of the more interesting comments that I need to talk about is the one regarding letting the application do the work. My original approach was to let the application do the work and found the following. XML manipulation in C# is slow. Looping through RecordSets to build a StringBuilder object is faster, but error prone. Letting the database do this work turned out to be much faster and more reliable than I ever imagined.

However, there is a problem with performing a lot of math in the stored procedures to produce polygons and circles. The same algorithm used to create circles in C# does not work so well in TSQL, so in this case, the application should be responsible for polygon creation, but the base XML/KML should be created at the database first.

I want to thank the publishers and contributors at SQLServerCentral.com for their advice and encouragement.

Saturday, February 28, 2009

Understanding KML

Understanding KML, which is the XML compliant format for sharing data with Google Earth requires reading and adhering to the KML Reference documentation at http://code.google.com

KML is essentially an XML compliant format for designating all of the relevant information that you wish to show in the your favorite display application. All data dependent applications require some form of contract, and with Google Earth, this contract is called KML. Within a document, you will find the element, which contains style sheet information as well as the point, circle or polygon shape objects, their icons, names, descriptions, latitude, longitude and elevation attributes.

According to Google, You can create KML files with the Google Earth user interface, or you can use an XML or simple text editor to enter "raw" KML from scratch. KML files and their related images (if any) can be compressed using the ZIP format into KMZ archives. To share your KML and KMZ files, you can e-mail them, host them locally for sharing within a private internet, or host them publicly on a web server. Just as web browsers display HTML files, Earth browsers such as Google Earth display KML files. Once you've properly configured your server and shared the URL (address) of your KML files, anyone who's installed Google Earth can view the KML files hosted on your public web server.

Many applications display KML, including Google Earth, Google Maps, Google Maps for mobile, NASA WorldWind, ESRI ArcGIS Explorer, Adobe PhotoShop, AutoCAD, and Yahoo! Pipes. This makes it a suitable standard for creating interactive business intelligence products.

A basic KML document might look like the following:

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>My office</name>
<description>This is the location of my office.</description>
<Point>
<coordinates>-122.0821604290386,37.42041505714916</coordinates>
</Point>
</Placemark>
</kml>


What this is describing is a simple placemark control having the minimum properties to be displayed within Google Earth. We see we have a single Placemark element, and within that placemark, we have a name [required], a description [required], and a [Point], also required. A point in Google Earth contains either both the latitude and latitude of a point, assuming the elevation sticks to the surface of the earth, or you can choose to include a third parameter within the coordinates tag to specify altitude.

Essentially, all kml documents we create will be relevant to your data and can be augmented with additional attributes to further enhance the experience.

I will dissect more complicated examples next time.

Google Earth Integration

Google Earth has revolutionized interactive business intelligence. The Google Earth and KML tool sets, along withe the widely accepted use of Google Earth, provides a vast community of data sources that when viewed in concert with your geospacial data, will provide more insight into your business than ever imagined.

I have made a career of building software applications that demonstrate data in a visual context, to decrease the duration of the OODA loop that business managers and battlefield commanders use to make better informed and faster decisions in order to gain and maintain the initiative.

The Observe, Orient, Decide, Act (OODA) loop is a well defined workflow that when compressed into a faster cycle than your competition, has proven to increase your competitive advantage and improves your win/loss ratio.

Google Earth lets you fly anywhere on Earth to view satellite imagery, maps, terrain, 3D buildings, from galaxies in outer space to the canyons of the ocean. You can explore rich geographical content, save your toured places, and share with others.

It turns out that Google Earth is one of the best platforms for no to low cost geospacial business intelligence.

The good folks at Google, have made it possible for you to incorporate your business data into one of the best geospacial rendering applications with relative ease.

I will be more than happy to work with any business in constructing relevant and interactive business intelligence applications using Google Earth, various third party and government data sources, and of course your data, giving you a world view of your business situation that you could not otherwise have appreciated before.