2. Key Points
• Introduce GeoJSON
• Talk about GeoJSON Libs and Examples
• Introduce GeoLocate
• Talk about GeoLocate Libs and Examples
3. 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/
4. 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
5. 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
6. Using GeoJSON with Google Maps
• Example: http://jsfiddle.net/x3pCk/8/
• Library: https://github.com/JasonSanford/GeoJSON-to-Google-Maps
7. Using GeoJSON with Leaflet
• http://leaflet.cloudmade.com/examples/geojson.html
• http://leaflet.cloudmade.com/reference.html#geojson
8. 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);
9. 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.
• 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/
10. Example Strings
Good vs Bad
• http://mvz.berkeley.edu/Locality_Field_Recording_examples.html
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
• Guide to Best Practices for Georeferencing
http://www.gbif.org/orc/?doc_id=1288
11. 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
12. 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