Wide Open Spaces Using My Sql As A Web Mapping Service Backend - Presentation Transcript
Wide Open Spaces:
MySQL as a Web
Mapping Service
Backend
Don Beesing
Alion Science and Technology
USJFCOM Experimentation
Modeling and Simulation
April 22, 2009
Overview
Going to show MySQL in one aspect of GIS World
Security Restrictions
Feel free to ask questions
Problem
Experiment based environment
How to share geospatial information
Many different government organizations
Disparate systems on each site
Fallback systems to use
Solution
WMS (Web Mapping Service)
OpenGIS Standard
Http request returns images
Can be a queryable service
Constraints
Typical commercial setup
Timing & dollar issues
Unofficial open source policy
Our idea
MySQL & MapServer
Diagram of Implementation
Users without Users with access to
access to WMS WMS Publishing
Publishing
Point and click GUI
COP
COP/WMS Server
WMS Feed
WMS Feed
HTTPDServer
HTTP Feed
MapServer CGI
MySQL Server
MySQL
Already a key component of lab
•
Proof of concept
•
Stubbornness of lab manager
•
MySQL Implementation
• Schema setup – geometry type
• Parent/child tables for updates
• Roads not taken
– Shapefile import
MapServer
Open source
•
Standards compliant
•
OGR connector to link w/MySQL
•
Standards version issues
•
Reliance on linked WFS
•
MapServer Format Example
Meta Data Header
WEB
METADATA
\"wms_title\" \"J9 Noble Resolve WMS Server\"
\"wms_onlineresource\" \"https://yoursite.com/mapserv?map=nr.map&\"
\"wms_srs\" \"EPSG:4269 EPSG:4326\"
\"wfs_title\" \"J9 Noble Resolve WFS Server\"
\"wfs_onlineresource\" \"https://yoursite.com/mapserv?map=nr.map&\"
\"wfs_srs\" \"EPSG:4326\"
END
END
Format Example
Layer Info
LAYER
CONNECTIONTYPE OGR
CONNECTION
\"MYSQL:noble_resolve_08,user=test,password=test,host=127.0.0.1,port=3306\"
DATA \"SELECT geom,id,max(update_id) as `update_ref`,object_title,IF(u.description IS NULL,
g.description, u.description) as `description`, IF(u.attachments IS NULL,
SUBSTRING_INDEX(SUBSTRING(g.attachments,2),',',1),
SUBSTRING_INDEX(SUBSTRING(u.attachments,2),',',1)) as `Attachment` FROM geoint g LEFT
JOIN geoint_updates u ON id=record_id WHERE object_type IN ('POINT','MULTIPOINT') AND
incident_type='fire' GROUP BY id, update_id;\"
NAME \"fire_points\"
METADATA
##wms metadata
\"wms_title\" \"fire_points\"
\"wms_author\" \"USJFCOM J9\"
\"wms_srs\" \"EPSG:4269 EPSG:4326\"
\"wms_include_items\" \"all\"
##wfs metadata
\"wfs_title\" \"fire_points\"
\"gml_featureid\" \"id\"
\"gml_include_items\" \"all\"
\"gml_geometries\" \"standard\"
\"gml_standard_type\" \"point\"
Format Example
Layer Info (cont)
END
TYPE POINT
STATUS ON
DUMP TRUE
TOLERANCE 3
TRANSPARENCY 90
TEMPLATE \"test.php\"
PROJECTION
\"init=epsg:4326\"
END
CLASS
NAME \"fire_points\"
SYMBOL graphics/flames.gif
END
END
Screenshot Demo
Giesken
James
J9 Control
Screenshot Demo
How did MySQL grade out?
Pros
Cons
Incompletes
Unresolved Issues – Steps Forward
Speed of Google Maps
•
Grouping of layers
•
Standards Assessment
•
MySQL GIS function usage expansion
•
Thanks
Would like to thank Steve Judy who was instrumental
•
in the front end design and design of some of the
subtables used for this project
Also would like to thank Chris Kannan of NGA who I
•
bounced a lot of these ideas off of and who put me in
contact with people who had used MapServer before
Questions
Any Questions after the conference can be directed to:
Don Beesing
dbeesing@alionscience.com
References
http://mapserver.org
•
http://www.gdal.org/ogr
•
http://www.opengeospatial.org
•
http://www.jfcom.mil/about/experiment.html
•
jo
0 comments
Post a comment