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);
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/
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
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

GeoCO GeoJSON & GeoLocate

  • 1.
  • 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 withGoogle Maps • Example: http://jsfiddle.net/x3pCk/8/ • Library: https://github.com/JasonSanford/GeoJSON-to-Google-Maps
  • 7.
    Using GeoJSON withLeaflet • http://leaflet.cloudmade.com/examples/geojson.html • http://leaflet.cloudmade.com/reference.html#geojson
  • 8.
    Using GeoJSON withOpenLayers • 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 of2002, 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 Goodvs 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 forGoogle & 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