FacilMap/Version 1/API
The project used to be called cdauth’s map. See /Migration guide from cdauth’s map for an overview of what has changed.
Developer resources are collected on http://dev.facilmap.org/.
There are two branches of the API, a stable and a beta branch. The stable branch is available on http://api.facilmap.org/ and the beta branch on http://beta.facilmap.org/api/. Updates are not guaranteed to be backwards compatible, so if you require high reliability, place a copy of FacilMap on your webspace or include a specific build from http://api.facilmap.org/builds/ or http://beta.facilmap.org/api/builds/.
FacilMap relies on OpenLayers and jQuery and should thus support all browsers that both of the libraries support ([1], [2]). Internet Explorer 6 is not supported.
A demo is available on http://api.facilmap.org/demo.html and http://beta.facilmap.org/api/demo.html.
Basic map
To use FacilMap, you have to include these two JavaScripts at least:
<script type="text/javascript" src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript" src="http://api.facilmap.org/facilmap.js"></script>
If you want to use XML APIs like the NameFinder or GPX layers, be sure to include the ajax-proxy before facilmap.js:
<script type="text/javascript" src="http://api.facilmap.org/ajax-proxy/ajax-proxy.js"></script>
To create a map on your web page, use the following code then:
<div id="map"></div>
<script type="text/javascript">
var map = new FacilMap.Map("map"); // "map" is the id of the div
</script>
Adding layers
You can either add your desired layers in your desired order or add all available base layers at once. Use this command to add a specific layer:
map.addLayer(new FacilMap.Layer.OSM.Mapnik("Mapnik"));
With this code, you add all available layers:
map.addAllAvailableLayers();
These layers are available:
- OpenStreetMap layers
- FacilMap.Layer.OSM.Mapnik: OpenStreetMap Mapnik rendering.
- FacilMap.Layer.OSM.Osmarender: OpenStreetMap Osmarender rendering.
- FacilMap.Layer.OSM.CycleMap: OpenStreetMap CycleMap rendering from [3].
- FacilMap.Layer.OSM.OpenStreetBrowser: Rendering from OpenStreetBrowser ([4]).
- FacilMap.Layer.OSM.Wanderkarte: „OSMC Reit- und Wanderkarte“ rendering of bridle- and hiking paths ([5]).
- FacilMap.Layer.OSM.HikeAndBike: „Hike & Bike Map“ rendering of hiking and biking features ([6]).
- FacilMap.Layer.OSM.OpenPisteMap: OpenPisteMap from [7].
- FacilMap.Layer.OSM.OPNVKarte: ÖPNV-Karte rendering of PSV routes ([8]).
- FacilMap.Layer.OSM.MapSurfer.Road: MapSurfer Road map from [9].
- FacilMap.Layer.OSM.MapSurfer.Topographic: MapSurfer Topographic map from [10].
- FacilMap.Layer.OSM.Kybl3DMap: Isometric 3D map of the Czech Republic from [11]
- FacilMap.Layer.OSM.OOMLabels: OpenOrienteeringMap labels overlay from [12]
- FacilMap.Layer.OSM.OOMStreets: OpenOrienteeringMap streets overlay from [13] (useful in combination with satellite images)
- FacilMap.Layer.OSM.OpenPTMap: Openptmap transport overlay from [14]
- Google layers: Get a Google Maps key from [15] and include
http://maps.google.com/maps?file=api&v=2&key=[Your key]
for these layers to work.- FacilMap.Layer.Google.Maps: Google Maps
- FacilMap.Layer.Google.MapsSatellite: Google Satellite
- FacilMap.Layer.Google.MapsHybrid: Google Hybrid (Satellite with streets overlay)
- FacilMap.Layer.Google.MapsTerrain: Google Terrain
- FacilMap.Layer.Google.MapMaker: Google MapMaker ([16])
- FacilMap.Layer.Google.MapMakerHybrid: Google MapMaker Hybrid (Satellite with MapMaker overlay)
- Yahoo layers: Include http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=facilmap (or any other appid) for these to work.
- FacilMap.Layer.Yahoo.Maps: Yahoo Maps
- FacilMap.Layer.Yahoo.Satellite: Yahoo Satellite
- FacilMap.Layer.Yahoo.Hybrid: Yahoo Hybrid (Satellite with street overlay)
- FacilMap.Layer.other.Relief: Relief overlay
- FacilMap.Layer.CoordinateGrid: Coordinate grid
- FacilMap.Layer.other.OSStreetView: Ordnance Survey Street View layer from [17]
Search panel
You can add a panel to your map that enables the user to search for places, display GPX files and calculate routes. Use the following code for that:
map.addControl(new FacilMap.Control.Search());
Permalink markers
You can create a layer that allows adding markers at specified positions that list Permalinks to other web-based maps:
var layerMarkers = new FacilMap.Layer.Markers.LonLat("Markers");
map.addLayer(layerMarkers);
layerMarkers.addLonLatMarker(new OpenLayers.LonLat(11.54321, 48.12345), "Title (optional)");
If you want a marker to be created automatically when clicking on the map, use the following code:
var markersControl = new FacilMap.Control.createMarker(layerMarkers);
map.addControl(markersControl);
markersControl.activate();
GPX/KML/OSM/GML files
To show a GPX, KML, OSM or GML file on the map, use the following code:
map.addLayer(new FacilMap.Layer.XML("Example OSM file", "http://www.openstreetmap.org/api/0.6/relation/80049", { colour : "blue" }));
“Example OSM file” is the layer name. If you do not provide a colour, a random one will be chosen.
Example: Map with all layers and two markers
Remember to insert your Google Maps key ([18]).
<script type="text/javascript" src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=[your key]"></script>
<script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=facilmap"></script>
<script type="text/javascript" src="http://api.facilmap.org/facilmap.js"></script>
<div id="map"></div>
<script type="text/javascript">
var map = new FacilMap.Map("map");
map.addAllAvailableLayers();
var layerMarkers = new FacilMap.Layer.Markers("Markers");
map.addLayer(layerMarkers);
layerMarkers.createMarker(new OpenLayers.LonLat(11.12345, 48.54321), "<strong>This popup will be opened initially.</strong>", true);
layerMarkers.createMarker(new OpenLayers.LonLat(10.12345, 48.12345), "<strong>This popup will be closed initially.</strong>", false);
map.zoomToExtent(layerMarkers.getDataExtent());
</script>
Documentation of advanced features
- /Namefinder — Search using Nominatim and display the results as markers
- /HistoryStateHandler — Always keep a Permalink of the current map view in the browser’s address bar
- /POIs — Make POIs on the map clickable using OpenLinkMap and open a popup with details