}
});
+L.Icon.Default.imagePath = <%= "#{asset_prefix}/images".to_json %>;
+
var map;
var layers = [
{
- urlTemplate: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
+ klass: L.OSM.Mapnik,
attribution: "",
keyid: "mapnik",
layerCode: "M",
name: I18n.t("javascripts.map.base.standard")
},
{
- urlTemplate: 'http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png',
+ klass: L.OSM.CycleMap,
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
keyid: "cyclemap",
layerCode: "C",
name: I18n.t("javascripts.map.base.cycle_map")
},
{
- urlTemplate: 'http://{s}.tile2.opencyclemap.org/transport/{z}/{x}/{y}.png',
+ klass: L.OSM.TransportMap,
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
keyid: "transportmap",
layerCode: "T",
name: I18n.t("javascripts.map.base.transport_map")
},
{
- urlTemplate: 'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png',
- subdomains: '1234',
+ klass: L.OSM.MapQuestOpen,
attribution: "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='http://developer.mapquest.com/content/osm/mq_logo.png'>",
keyid: "mapquest",
layerCode: "Q",
];
function createMap(divName, options) {
- map = L.map(divName, options);
+ options = $.extend({zoomControl: false, panZoomControl: true, layerControl: true}, options);
+
+ map = L.map(divName, $.extend({}, options, {panControl: false, zoomsliderControl: false, maxZoom: 18}));
if (map.attributionControl) {
map.attributionControl.setPrefix(''); // For tmcw
}
+ if (options.panZoomControl) {
+ new L.Control.Pan().addTo(map);
+ new L.Control.Zoomslider({stepHeight: 7}).addTo(map);
+ }
+
var layersControl = L.control.layers();
- if (!options || options.layerControl !== false) {
+ if (options.layerControl) {
layersControl.addTo(map);
}
for (var i = 0; i < layers.length; i++) {
- layers[i].layer = L.tileLayer(layers[i].urlTemplate, layers[i]);
+ layers[i].layer = new (layers[i].klass)(layers[i]);
if (i == 0) {
layers[i].layer.addTo(map);
}
return map;
}
-function getArrowIcon() {
+function getUserIcon(url) {
return L.icon({
- iconUrl: <%= asset_path('arrow.png').to_json %>,
- iconSize: [25, 22],
- iconAnchor: [22, 20]
+ iconUrl: url || <%= asset_path('marker-red.png').to_json %>,
+ iconSize: [25, 41],
+ iconAnchor: [12, 41],
+ popupAnchor: [1, -34],
+ shadowUrl: <%= asset_path('images/marker-shadow.png').to_json %>,
+ shadowSize: [41, 41]
});
}
-function addMarkerToMap(position, icon, description) {
- var marker = L.marker(position, icon ? {icon: icon} : null).addTo(map);
-
- if (description) {
- marker.bindPopup(description);
- }
-
- return marker;
-}
-
-function removeMarkerFromMap(marker) {
- map.removeLayer(marker);
-}
-
function addObjectToMap(object, zoom, callback) {
$.ajax({
url: OSM.apiUrl(object),
dataType: "xml",
success: function (xml) {
- var layer = new L.OSM(xml, {
+ var layer = new L.OSM.DataLayer(xml, {
style: {
strokeColor: "blue",
strokeWidth: 3,