150 likes | 326 Views
Dynamic Map Service Integration Tool Mashing with Google Maps. Craig Wolff, M.S. Eng CA Environmental Health Tracking Program Environmental Health Investigations Branch CA Department of Health Services Impact Assessment, Inc. Map Visualization Principles.
E N D
Dynamic Map Service Integration ToolMashing with Google Maps Craig Wolff, M.S. Eng CA Environmental Health Tracking Program Environmental Health Investigations Branch CA Department of Health Services Impact Assessment, Inc.
Map Visualization Principles • CEHTP and/or system owners provide easy, systematic, and standards-based access to GIS data for dynamic interactive mapping… at any portal • CEHTP and/or system owners maintain maximum control over layer rendering • CEHTP and/or system owners focus resources on data within their jurisdiction
Historical Internet Mapping Paradigm • Procure hardware, software, staff resources, • Acquire (often buying) all GIS data to be used in map service, import into platform, configure rendering specifications for every GIS dataset/layer • Develop a customized browser-based client to consume map service
Evolving Map Service Paradigm • Provide Uniform Resource Locator (URL) access to commonly used GIS layers • Give limited choices for visual rendering • Interface specifications (URL parameters) for requesting map image follows a standard (technological or consensus) • OpenGIS Web Map Service (WMS), TerraServer, USGS
Google/NASA Tip the Scale • Google Earth and NASA Worldwind display map image tiles of basemap and satelite/aerial imagery of the whole earth • Physical air travel by humans decreases • Google Maps provides easy to use browser-based clients that incorporate AJAX and fluid rendering of database-cached map image tiles
Mashups & Interactive Mapping • Google Maps API allows interactive maps with basemap and high-res satelite imagery on any website … no plug-ins • See http://www.google.com/apis/maps/ • Hackers figure out how to integrate WMS content in Google Maps API • See http://blog.kylemulka.com/?p=287
CEHTP Trials/Tribulations • Two partners to visualize CEHTP pilot project data through custom interactive map server/client implementations • Stumbled through GIS data exchange, metadata, and appropriate layer rendering • Loss of control, miscommunication, map server/client platforms too “closed” • Need enterprise solution that makes interoperability, portability, and standards a top priority
DyMSIT Requirements • Develop server-side utility that overlays multiple map server image tiles according to [big] client request • Support for consuming most popular map server output (ie. ArcIMS, WMS, UMN MapServer, ArcWeb services) • Support for individual layer transparency and opacity • Support for server-side caching (~Google speed) • Invocation interface is WMS (ie. standard URL access) • Support for GetFeatureInfo and GetLegendGraphic
Recursion on LAYERS parameter • Recursion: programming technique in which a function calls itself. • WMS LAYERS parameter is another WMS request (or an ArcIMS request or a MapServer request or a AWS request) • HTTP encode each LAYERS parameter • Opacity specified through STYLES parameter
DyMSIT Components • Servlet container • DyMSIT Servlet and supporting classes (~1500 lines) • 3rd party Java libraries: JAI, ArcIMS Java Connector, GIF encoder/decoder, JDBC driver • RDBMS to hold cached image tiles (3-field table) • Javascript library (~100 lines)