Monday, April 17, 2006

Shape2Earth Beta 2

[NOTE: Shape2Earth Version 1.0 has been released for download at http://shape2earth.com]

There are a number of nice enhancements added to Shape2Earth for the Beta 2 release.

Optimized Speed
Shape2Earth has been optimized and is much faster when writing KML.

Query Attribute Data
Users can query GIS attribute data using keyword inputs, can sort fields, and can zoom to selected features in Google Earth. This is very helpful for large datasets, and for polygons that are not selectable in Google Earth.

On-The-Fly Reprojecting
Users no longer have to reproject their data to WGS84 before converting. Shape2Earth can now re-project on the fly from the original projection to Google Earth’s projection.

Enhanced Point Options
Users have a better selection on which graphics to use to represent point features. They also have the option of changing the size and color of a point when the mouse hovers over it in Google Earth. Similarly, users can set up the KML so that the attribute used to name the feature is only visible when the point is hovered over (see below).




Improved Interface
The Shape2Earth interface has been compacted, with tools being moved from the Form to a toolbar on the top. This helps when people want to interact with Shape2Earth and Google Earth at the same time. The ability to keep the Shape2Earth Form on top of Google Earth all of the time has been added to the options menu.

Saturday, April 01, 2006

Querying GIS Data in Google Earth

Feedback has been coming in from people who have been kind enough to test Shape2Earth Beta 1. So far, I have been quite pleased with the results. There do not appear to be any major glitches. I'm still open for more people to try it out if they would like.

Someone pointed out that it would be nice to be able to alphabetically sort the features in KML so that people could more easily find them in Google Earth. This is a great idea, and I’ll be looking into a sorting method soon. In the meantime, I started investigating how to query the data in a manner similar to the way that we query GIS data. The basic idea is to query and/or sort features in Shape2Earth using their attributes, and then zoom to their location in Google Earth.

To do this, I have added an additional tab to the Shape2Earth form. It loads all of the attribute data of the shapefile into a data grid. Data is only loaded when requested in order to optimize performance for users who only want to convert data to KML.

Once selected, all of the attributes are loaded into the table. In this example, I have already loaded a shapefile of world volcanoes into Google Earth as a KML network link. Each feature in the table of contents in Google Earth has the name of the volcano, but they are not in alphabetical order.

With the attribute data from the KMLs companion shapefile loaded into Shape2Earth, I have a couple of options for finding a particular feature. I can sort the table based on any of the fields (see below) and then manually select the feature in the table that I would like to zoom to in Google Earth.

I can also search for attributes using a text field to enter values. I can look for specific values, or use a 'like' clause to match close values. In this example, I have entered 'helens' to query for Mount Saint Helens. I have one record that matches this query, and I can view it by itself by clicking 'View Selected'.

I can return to the rest of the table by clicking "Shop All". To zoom to my selected feature, I simple click on "Zoom to Selected", and then watch as Google Earth gracefully zooms to the item I have selected.

To make this querying capability as fluid and useful as possible, I have added an option that allows for Shape2Earth to always sit on top of Google Earth. This provides the ability to really smoothly navigate through Google Earth usinattributeribute data.

So far, it has worked fantastically for points and polygons the size of buildings. I'll have to add some geometric functions for it to work appropriately for large polygons. GE does not let you set the MapView coordinates that way that a typical GIS does. So I will need to mimic this using a center-point and distance.