geoco geojson & geolocate
DESCRIPTION
Presentation given at Geo-CO meetup in Denver.TRANSCRIPT
GEO Colorado
GeoJSON & GeoLocate
Key Points
• Introduce GeoJSON
• Talk about GeoJSON Libs and Examples
• Introduce GeoLocate
• Talk about GeoLocate Libs and Examples
GeoJSON
• A format for encoding a variety of geographic data
structures.
• A GeoJSON object may represent a geometry, a
feature, or a collection of features.
• GeoJSON supports the following geometry types:
Point, LineString, Polygon, MultiPoint,
MultiLineString, MultiPolygon, and
GeometryCollection.
• Features in GeoJSON contain a geometry object and
additional properties, and a feature collection
represents a list of features.
http://www.geojson.org/
PostGIS
• Since version 1.3.4
Getting Data Out
• SELECT ST_AsGeoJSON(the_geom) FROM table
Putting Data In
• INSERT INTO table (the_geom)
VALUES ( ST_SetSRID(
ST_GeomFromGeoJSON('{"type":"Point","coordinates":[-104.983718,39.760808]}')
,4326
)
)
http://postgis.refractions.net/documentation/manual-2.0/ST_GeomFromGeoJSON.html
http://postgis.refractions.net/documentation/manual-2.0/ST_AsGeoJSON.html
PostGIS
PostgresSQL 9.2 – New JSON Datatype
• http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.2#JSON_datatype
FeatureCollection
• SELECT row_to_json(fc)
FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
FROM (SELECT 'Feature' As type
, ST_AsGeoJSON(lg.the_geom)::json As geometry
, row_to_json((SELECT l FROM (SELECT id, name) As l )) As properties
FROM locations As lg ) As f ) As fc;
Currently CartoDB is on version PostgreSQL 9.1.2 but they do support GeoJSON output format.
See http://developers.cartodb.com/documentation/cartodb-apis.html
http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-
and-PostGIS-functions.html
Using GeoJSON with Google Maps
• Example: http://jsfiddle.net/x3pCk/8/
• Library: https://github.com/JasonSanford/GeoJSON-to-Google-Maps
Using GeoJSON with Leaflet
• http://leaflet.cloudmade.com/examples/geojson.html
• http://leaflet.cloudmade.com/reference.html#geojson
Using GeoJSON with OpenLayers
• http://docs.openlayers.org/library/spherical_mercator.html
• http://openlayers.org/dev/examples/vector-formats.html
var geojson = new OpenLayers.Layer.GML("GeoJSON", "geo.json", {
projection: new OpenLayers.Projection("EPSG:4326")
, format: OpenLayers.Format.GeoJSON
});
map.addLayer(geojson);
• Developed by Tulane University
• Uses gazetteers, streams, rivers, roads, landmarks, geonames data
set
• Open Street Maps data coming in the near future
• Uses GeoJSON for its RESTful responses
• API: http://www.museum.tulane.edu/webservices/geolocatesvcv2/glcwrap.aspx
• Ref: http://www.museum.tulane.edu/webservices/geolocatesvc/geolocatesvc.asmx
http://www.museum.tulane.edu/geolocate/
In February of 2002, Dr. Bart and Nelson Rios received funding from the U.S. National
Science foundation to develop GeoLocate to facilitate georeferencing of natural
history collections data, a tool for comprehensive automated georeferencing of North
American locality descriptions. Ongoing development involves expanding coverage to the
entire world, multi-lingual support, user-defined pattern recognition, and collaborative
georeferencing.
Example Strings
Good vs Bad
• http://mvz.berkeley.edu/Locality_Field_Recording_examples.html
• Guide to Best Practices for Georeferencing
http://www.gbif.org/orc/?doc_id=1288
State County Locality
Alabama Russell Adams Branch, 3.0 road miles WSW junction County Highway 32 and Rt. 80 on 32, 4.75 air miles WSW Crawford, (T17N, R28E, Sec. 32)
Louisiana East Feliciana Amite R. at LA 10 crossing, 4 mi. W of Darlington on LA Hwy 10
Alabama Lee Uchee Cr., trib.of Chattahoochee R., 0.7 mi. E of Marvyn
Alabama Russell Trib. of Uchee Cr., 3.1 mi. E of Marvyn
Alabama Russell Trib. of Little Uchee Cr., 0.9 mi. E of Crawford on Rt.80
Sample Request
Request
• http://www.museum.tulane.edu/webservices/geolocatesvcv2/glcwrap.aspx?locality=E shore of
Bolinas Lagoon, 3.1 mi NW via Hwy. 1 from intersection of Hwy. 1 and Calle del Arroyo in Stinson
Beach (town), Marin Co.,
Calif.&country=USA&state=CA&county=marin&language=0&enableH2O=true&enableHwy=true&r
estrictToLowestAdm=false&enableUncert=true&doPoly=true&displacePoly=false&fmt=geojson
o locality=E shore of Bolinas Lagoon, 3.1 mi NW via Hwy. 1 from intersection of Hwy. 1 and Calle del Arroyo in
Stinson Beach (town), Marin Co., Calif.
o country=USA
o state=CA
o county=marin
o language=0
o enableH2O=true
o enableHwy=true
o restrictToLowestAdm=false
o enableUncert=true
o doPoly=true
o displacePoly=false
o fmt=geojson
GeoJSON Libs for Google & Leaflet
Project Repository
• http://code.google.com/p/geolocate-libs/
• Google Map Example: http://www.silverbiology.com/clients/geolocate/geolocate-gmapsv3/example.html
• Leaflet Example: http://www.silverbiology.com/clients/geolocate/geolocate-leaflet/example.html