[[PageOutline]] = How can I add an interactive map to my web site? = == Overview == Mapping involves a lot of concepts that are hard to put together by yourself. This page provides a survey of the different opensource tools available to do this work. == The pieces == === The Map Server === The Map Server's job is to read mapping data files and create maps from them. MFPL offers [http://mapserver.gis.umn.edu/ mapserver] for all members. Please [/newticket post a ticket] to request access to the map server. To get started with our mapserver, you will need to create a map file, which points to the data you've collected. Check out this [http://biometry.gis.umn.edu/tutorial tutorial] for an introduction. Other map servers include: [http://geoserver.org/ geoserver], [http://www.easywms.com/easywms/?q=en/suas suas mapserver], [http://www.openstreetmap.org/ openstreetmap], [http://mapnik.org mapnik]. === Data === The most common data format (currently) is a shapefile. The ESRI Shapefile or simply a shapefile is a popular geospatial vector data format for geographic information systems software. It is developed and regulated by ESRI as a (mostly) open specification for data interoperability among ESRI and other software products. A "shapefile" commonly refers to a collection of files with ".shp", ".shx", ".dbf", and other extensions on a common prefix name (e.g., "lakes.*"). The actual shapefile relates specifically to files with the ".shp" extension, however this file alone is incomplete for distribution, as the other supporting files are required. Shapefiles spatially describe geometries: points, polylines, and polygons. These, for example, could represent water wells, rivers, and lakes, respectively. Each item may also have attributes that describe the items, such as the name or temperature. -- [http://en.wikipedia.org/wiki/Shapefile wikipedia] [http://www.census.gov/cgi-bin/geo/shapefiles/national-files Census] folks have recently released updated data. [http://nationalatlas.gov/atlasftp.html National atlas] is another gov site. This one has great categories: transportation, water, people, history, etc. === Addresses and Geo coding === If you want to plot points on a map, you will need to provide the addresses. In addition, you will need to add geo-coding information to the addresses in order for the points on the map to be plotted. Geo-coding data is converting an address (building number, street name, zipcode) into latitude and longitude coordinates, that allow the location to be plotted on a map. http://geocoder.us/ - Geocoding site that lets you look up one address at a time. Their sourcecode is available, if one was interested in offering this service. http://www.batchgeocode.com/ Geocode multiple addresses on one site. Uses the [http://developer.yahoo.com/maps/rest/V1/geocode.html Yahoo geocoding API] === RSS === One handy way to make your data portable is to use RSS. It is one way to publish your geo-coded data in a way that your map front end can access it. [http://detentionwatchnetwork.org/dwnmap This map] uses the drupal content management system to publish an RSS feed of all the detention centers in the US. Openlayers reads that feed and uses it to print markers on a map. [http://georss.org/ GeoRSS] is simple proposal for RSS feeds to also be [http://www.georss.org/overview.html described by location] === The front end === Finally, you will need a front-end that reads your address/geo-coded points, requests the map from the map server, and displays the result to the end-user. This is software for creating layers of data, zooming in or out of a map, etc. MFPL recommends [http://www.openlayers.org/ openlayers]. To use openlayers... Other software includes: [http://ka-map.maptools.org/ ka-map], [http://worldkit.org/ worldkit], [http://www.geomoose.org/moose/ geomoose] == Notes and discussion == Mapserver seems to be the best choice for serving maps. It's been around the longest and can do it all. Geoserver uses Tomcat, which is why I did not use it. SUAS I was not able to get installed. I was very intrigued but could not find some key components as I was trying to install. Openstreetmap is an opensource project to map the world. Mapnik is the latest and greatest software. It makes very pretty maps! Ka-boom seemed to be the best choice for a front end, mainly because it has a tiling mechanism that allows for smooth scrolling inside a map. I ended up choosing openlayers because it allowed me to plot points on a map using GeoRSS feeds. Worldkit is an easy to use flash-based mapping program. Nice, but I do not like flash. Geomoose is intriguing, with their focus on separating the layers of info from the map itself. I found it late in the game, so it needs more looking at.