<< January, 2009 >>
SMTWTFS
123
45678910
11121314151617
18192021222324
25262728293031
Search Blog

Recent Entries
Recent Comments
Re: A new beginning... (by Casey at 8/15 10:43 AM)
Re: A new beginning... (by Kirk Mower at 8/14 11:16 PM)
Re: A new beginning... (by jbartley at 7/27 10:25 AM)
Re: A new beginning... (by Brian Timoney at 7/26 4:12 PM)
Re: A new beginning... (by Dave at 7/26 1:50 PM)
Re: A new beginning... (by Steven Citron-Pousty at 7/26 1:04 PM)
Re: A new beginning... (by James Fee at 7/26 12:21 PM)
Re: A new beginning... (by Brian Flood at 7/26 12:12 PM)
Re: A new beginning... (by amber at 7/26 11:06 AM)
Re: ArcIMS and Google Maps version 2 for ASP (by rnrwang at 6/28 2:02 PM)
Categories
Archives
Photo Albums
RSS

Powered by
BlogCFM v1.11

22 September 2005
ArcIMS to Google Maps...
This is a bit off the subject of Mapdex but if you are an ArcIMS user and would like to publish your imagery data with Google Maps, then check this out...

I have debated with myself and others about if and how we should publish our large raster datasets within the Google Maps framework.  State and local gevernments have large amounts of high quality aerial photography, often much better than what Google Maps provides.  But how do small government agencies deal with the massive computing infrastrcutre of Google?  One of the reasons people like Google Maps is that it is a fast, seamless repository of imagery (high quality in some areas, very low in others).  The speed for Google Maps lies in the tiling scheme.  Unfortunately the Google Map API does not allow (currently) a way to overlay an image that spans multiple tiles, if it is an image then it must conform to the tiling system.  Google Earth is much different.  I and others have shown how realitively easy it is to pass a network link containing ground overlays that span large areas on top of Google Earth's base data.  This is not the case for Google Maps (at least not that I have been able to see). 

So what can you do?
  • Build a script that requests each tile from a mapserver/service in real-time.  This works, but of course it is slow and represents a heavy load on the ArcIMS/SDE server.  If a client is using GM and is viewing 40 tiles at once that is 40 requests made to the database/map server for one screen image.
  • Pre-build all the images at all the appropriate scales for a mapservice.  This would be blazing fast (it would be exactly what GM does), but it would mean another replication of a dataset.  I did some back of the envelope calculations and figured that to cover all of Kansas at all the appropriate zoom levels (zoom level 7 to zoom level 0) for our 1meter 2002 DOQQ layer would be approximately half a terabyte.  Considering that we already have that dataset in SDE and are quite happy with the performance with our map servers, it would be hard to justify the expense and upkeep in drives just to support GM.  And what do we do if/when Google changes their tiling scheme or image size?  Who really knows what Google's future plans for Google Maps are?
  • Build a cache-on-the-fly approach for a mapservice.  As interesting as Kansas is, most users don't want to look at every 300m X 300m tile (zoom level 0) over the entire state!  So do the best of both worlds.  As a user zooms into GM for one of our map services we check to see if someone else has requested the image before and if so then return the cache image.  If it is the first time any user has been to an area, then use ArcIMS to build the tiles for the area and save them to the cache.
http://geoportal.kgs.ku.edu/googlemaps/

So check out the cache-on-the-fly approach that I have implemented for GM for Kansas.  You can see the 1meter 2002 state-wide DOQQ's or see the 6inch City of Lawrence DOQQ's.  It is quite a difference compared to the imagery that Google has for Kansas and Lawrence.  I will be releasing the ArcIMS script soon (as soon as I document it).  It is fairly straightforward (take GM tile coordinates, reproject to mercator projection, request mercator image of ArcIMS service, & save image for cache). 

I want to thank Just van den Broecke, Brian Flood, & Kyle Mulka for figuring out the Google API javascript (could someone from google please tell me why the getLatLng function is not in the map API?)

If Google is really serious about GM, then they should implement a service like this that allows agencies to provide access to their spatial data via ArcIMS or ArcGIS Server.  It strikes me as an "overnight" SDI for imagery...

So what do you think?

Jeremy
Posted by jbartley at 10:38 PM | Link | 3 comments
Subscription Options

You are not logged in, so your subscription status for this entry is unknown. You can login or register here.

Re: ArcIMS to Google Maps...
really nice work Jeremy, I like the tile caching on the server. I think the kaMap server bits for MapServer do the something similar. Of course the debate there is cache "fresh-ness" but for many tiles sets, this really isn't an issue.

anyway, excellent work.
brian
Posted by Brian Flood on September 23, 2005 at 8:02 AM

Re: ArcIMS to Google Maps...
Thanks for the comments Brian-

I have seen rumblings with kaMap about tile caching. So they blazed the trail on that front. For datasets like imagery, I don't think you have to worry about them changing. In Kansas we went 12 years in between updating the 1m DOQQ's.

Thanks for your work on the working with the undocumented functions in the Google API!

Jeremy
Posted by jbartley on September 23, 2005 at 8:25 AM

Re: ArcIMS to Google Maps...
Looks very nice Jeremy, well done! Glad you mention ka-map! See some more thoughts on my blog (http://dmcope.blogspot.com/2005/09/arcims-to-google-maps-my-thoughts.html)
Posted by darrencope on September 23, 2005 at 9:52 AM

Commenting has been disabled for this entry.