Presentation on theme: "1 - 1 Concurrent Web Map Cache Server A Vision for IndianaMap Zao Liu, Marlon Pierce, Geoffrey Fox Community Grids Laboratory Indiana University Neil Devadasan."— Presentation transcript:
1 - 1 Concurrent Web Map Cache Server A Vision for IndianaMap Zao Liu, Marlon Pierce, Geoffrey Fox Community Grids Laboratory Indiana University Neil Devadasan The Polis Center IUPUI October 28 2006
1 - 3 Where are we today? The current IndianaMap http://126.96.36.199/arcims/igic/viewer.htm uses data collected by the Indiana Geological Survey (IGS) http://188.8.131.52/arcims/igic/viewer.htm IGS periodically collects the best available State and Federal data and authors the data on a central web server The web service includes the 2005 Statewide Orthophotography, INDOT and TIGER roads, USGS 10 foot contours, and Census boundaries
1 - 4 Federating GIS Servers Around Indiana Indiana has 92 counties Many counties have public GIS map servers. Examples ESRI ArcIMS and ArcMap Server Marion, Vanderburgh, Hancock, Kosciusco, Huntington, Tippecanoe Autodesk MapGuide Hamilton, Hendricks, Wayne WTH Mapserver Web Mapping Application (OGC Minnesota Map Server) Fulton, Cass, Daviess, City of Huntingburg Also there are state-wide GIS servers Orthophotography from Indiana University Indiana Geological Survey These are not normally interoperable.
1 - 5 IndianaMap vs local county data 10 foot contours (1990)1 foot contours (2004) Local roads INDOT (2003)Local roads (2006) No parcelsParcels (2006) No point addressesPoint addresses (2006) Jurisdictional boundaries (2001)Jurisdictional boundaries (2006)
1 - 6 Building a Hybrid System Google Maps provide a highly interactive user interface and capabilities (geolocations, directions) But GIS services have much more detailed local information. Indiana has orthophotography with much higher zoom levels than Google maps. http://www.indiana.edu/~gisdata/05orthos.html Local county servers have many interesting map layers not in Google Parcels/property lines, school district lines And these tie into feature services with interesting data like pinpoint addresses, tax assessments, etc. So obviously it makes sense to adopt the Google approach but enhance it with local data. Ultimately we hope to ties this into representations of scientific data generated on the Grid.
1 - 7. The Polis Centers Distributed Web GIS Middleware Research Strategy To take advantage of this highly accurate local data for use statewide, a variety of technical issues must be overcome such as: Projecting the information to a single coordinate system Standardizing symbology Retrieving individual Layers
1 - 8 Caching for Performance County Server Cache Server Performance is constrained by the performance of the individual servers. We need to pre-fetch and store as tiles.
1 - 9 Browser + Google Map API Cass County Map Server (OGC Web Map Server) Hamilton County Map Server (AutoDesk) Marion County Map Server (ESRI ArcIMS) Browser client fetches image tiles for the bounding box using Google Map API. Cache Server Tile Server Adapter Cache Server requests map tiles at all zoom levels with all layers. These are converted to uniform projection, indexed, and stored. Overlapping images are combined. Must provide adapters for each Map Server type. The tile server fulfills Google map calls with cached tiles at the requested bounding box that fill the bounding box. Google Maps Server
1 - 10 Two Phase Approach: Caching and Tiling Federation through caching: WMS and WFS resources are queried and results are stored on the cache servers. WMS images are stored as tiles. These can be assembled into new images on demand (c. f. Google Maps). Projections and styling can be reconciled. We can store multiple layers this way. We build adapters that can work with ESRI and OGC products; tailor to specific counties. Tiling: Client programs obtain images directly from our tile server. That is, dont go back to the original WMS for every request. The tile server can re-cache and tile on demand if tile sections are missing.
1 - 11 Converting bounding box to Google tile values Find the bounding box of Indiana which covers all the state. Convert the latitude value and longitude value of the bounding box into the Google map tile coordinate values. Identify the tile coordinate values in the bounding box. Convert the tile ID into the latitude and longitude values. Use Indiana Geology Surveys service to match county to tile. Store in database. We can pre-fetch tiles by sending request to the county server that these tiles belong to and fetch the tile back. Google uses an x,y coordinate system combined with a zoom value to specif y the tiles to retrieve from the server. These coordinates are calculated usin g an algorithm which can be found in GoogleMapki. See: http://www.code project.com/useritems/googlemap.asp Steps for fetching image tiles from county map servers that match Google map tiles. Example Tile: http://mt0.google.com/mt?n=404&v=w2.37&x=0&y=0&zoom=16.
1 - 12 Naming Tiles Example Save the tile-county mapping in our database. For a given tile name, we can look up the county. Using each tile lat/lon values to construct requests for IGS boundary services. IGS Services will tell which counties are at least partially in this tile. The site for IGS services is: http://igs.indiana.edu/ For each tile in the bounding box, we can convert its tile coordinate values into lat/lon values. Calculating how many tiles there are in this bounding box and identify each tiles value. In this figure, there are (37- 46+1)*(49-37+1) = 6 tiles (our choice). Convert A, B lat/lon values to Google map tile values at a given zoom level. Value for A is (36,47), B is (37,49) A (-88.2, 42.4) B(-84.6, 37.1) Bounding box of Indiana at zoom level 10 Tile 1 (36,47) Tile 2 (36,48) Tile 3 (36,49) Tile 4 (37,47) Tile 5 (37,48) Tile 6 (37,49)
1 - 13 Combine Google map with county parcel data Map servers typically contain base maps and optional layers. Parcel boundaries, roads, and township boundaries are layers. We cache each layer separately. Layers and base maps are combined dynamically using Java Advanced Image libraries.
1 - 14 Matching Projections: EPSG4326 to Mercator County map over-layer from IGS is in EPSG4326 projection. Must convert to Mercator to match Google.
1 - 15 Combine tiles at County Boundaries Marion County Hancock County County boundary tiles need to be combined to one tile by use Java Advanced Image Library
1 - 16 Next Steps University-private sector partnership Seek University and private sector funding to implement statewide system for Indiana Develop Full Implementation System Finalize requirements Formalize programming interface using Web Service standards (WSDL and SOAP) Develop functionality Investigate scalability and performance issues
1 - 17 Next Research Initiatives Use to represent outputs of scientific applications. Contour plots, vector maps, and other types of layers for displaying results of geophysical applications. Dynamic (real time layers) to display streaming data from instruments and applications. Find a way to keep current with county servers, especially when the county server change layer id. Recent Monroe County example The tiling services should support multiple server styles Improve collaborative clients
1 - 24 More Information firstname.lastname@example.org email@example.com firstname.lastname@example.org See demo: http://184.108.40.206/demo/indianaViewer.html Collaborative version: http://220.127.116.11/samples/CollabmapUpdate/indianaViewer.ht mlhttp://18.104.22.168/samples/CollabmapUpdate/indianaViewer.ht ml Need a) Flash, and b) a friend to also try. Buggy still, so you have to login at the same time.