32 | | |
33 | | = Background = |
34 | | '''Note:''' The content herein is a loosely structured collection of notes and links that we have found useful, not necessarily what will be supported in the future. |
35 | | |
36 | | == What's GIS? == |
37 | | * [http://cfis.savagexi.com/articles/category/gis Series of blog posts] giving intro to GIS; choice quote from [http://cfis.savagexi.com/articles/2006/04/20/on-coordinate-systems#comments an early post]: "If you feel like ending a conversation with a developer then simply bring up the topic of character encodings ... [o]r ... coordinate systems. ... So in the spirit of Tim Bray's and Joel Spolsky's wonderful writeups of character encodings, I thought I'd put together a basic survival guide to coordinate systems over my next few posts and then tie it back to Google Maps." |
38 | | * More on [http://en.wikipedia.org/wiki/Map_projection map projections], including why people can't agree on just one (utf-8). |
39 | | * [http://en.wikipedia.org/wiki/Geodesy geodesy] the field of science for this stuff. |
40 | | |
41 | | == Useful Code == |
42 | | * [http://postgis.refractions.net/ PostGIS], the [http://www.opengis.org/docs/99-049.pdf OpenGIS SQL Types (pdf)] implementation for Postgresql |
43 | | * [http://geos.refractions.net/ GEOS], low-level C++ port of [http://www.jump-project.org/project.php?PID=JTS Jave Topology Suite], used by PostGIS |
44 | | * [http://zcologia.com/news/14/python-geos-module/ PyGEOS, now outdated due to PCL, below], and shedloads more stuff on "python, geospatial, and the web" |
45 | | * [http://gispython.org/ Python Cartographic Library] - [http://trac.gispython.org/projects/PCL actively maintained], huge GIS package, GPL. |
46 | | * There are direct SWIG Python bindings in GEOS 3.0.0RC1 and above. In other words, the entire GEOS API may be called directly from Python. |
47 | | * [http://www.initd.org/tracker/psycopg/wiki/GeoTypes GeoTypes] is a type (and conversion) library for PostGIS via psycopg. |
48 | | * [http://exogen.case.edu/projects/geopy/ Geopy] |
49 | | * Calculates distances using (very accurate) [http://www.movable-type.co.uk/scripts/LatLongVincenty.html Vincenty], and uses the [http://en.wikipedia.org/wiki/World_Geodetic_System WGS 84] datum by default. |
50 | | * Has utility functions for unit of measurement (UOM) conversions (e.g. meters -> kilometers, kilometers -> miles, etc.) |
51 | | * Excellent GeoCoding capabilites. Has interfaces for Google, Yahoo, Microsoft Live, MediaWiki, and [http://www.geocoder.us/ Geocoder.us]. |
52 | | * [http://www.gdal.org/ GDAL/OGR], a library for fiddling with raster geo images. |
53 | | * Has a Python interface. A SWIG interface is in development, but not yet stable (no access to ''full'' API). |
54 | | * [http://shapelib.maptools.org/ shapelib] and [http://www.gdal.org/ogr/ogr2ogr.html ogr2ogr] are useful for ESRI shapefile manipulations. [http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf ESRI shapefiles] are a lingua frana GIS format. |
55 | | * [http://search.cpan.org/~sderle/Geo-Coder-US/ Geo::Coder::US] An excellent ''Perl'' library for GeoCoding that powers [http://www.geocoder.us/ Geocoder.us]. Users can create their own Geographic databases using the Census Bureau's TIGER/Line data (see below). |
56 | | * [https://svn.greenpeace.org/projects/custard/browser/doc/geodata GeoRosetta], CC-BY-SA licensed, quality-controlled, collection of geocoding data. Not yet released to public(?). |
57 | | * [http://mapserver.gis.umn.edu/ MapServer]: University of Minnesota (UMN) "open source development environment for building spatially-enabled internet applications." |
58 | | * [http://www.mapnik.org/ Mapnik]: C++ and Python toolkit for developing mapping applications. Claimed benefits over MapServer: "It uses the AGG library and offers world class anti-aliasing rendering with subpixel accuracy for geographic data. It is written from scratch in modern C++ and doesn't suffer from design decisions made a decade ago." ''See'' [http://www.mapnik.org/faq/ MapNik FAQ]. |
59 | | * [http://code.google.com/p/pyproj/ pyproj]: Pyrex generated python interface to PROJ.4 library. |
60 | | * Ruby on Rails |
61 | | * [http://rubyforge.org/projects/georuby/ GeoRuby]: Interface for PostGIS and MySQL spatial extensions, but not sure about spatial querying. |
62 | | * [http://www.ivygis.org/ IvyGIS]: Google-maps type displays with RoR and UMN's MapServer |
63 | | * [http://thepochisuperstarmegashow.com/ProjectsDoc/spatialadapter-doc/index.html Spatial Adapter for Rails]: A plugin for Rails which manages the MySql Spatial and PostGIS geometric columns in a transparent way (that is like the other base data type columns). This might have some useful techniques for when we try to support other spatial extensions other than PostGIS. |
64 | | * [http://cartographer.rubyforge.org/ Cartographer] GMaps plugin |
65 | | |
66 | | == Useful Data == |
67 | | * [http://www.census.gov/geo/www/tiger/tiger2006se/tgr2006se.html TIGER/Line]: "The TIGER/Line files are extracts of selected geographic and cartographic information from the [http://www.census.gov/ Census Bureau's] TIGER® (Topologically Integrated Geographic Encoding and Referencing) database." This data is useful in creating your own geocoding database service. Currently 2006 Second Edition is the latest. Note: The Census Bureau will be [http://www.census.gov/geo/www/tiger/tgrshp.html providing SHP files] in Fall, 2007. |