var epsg4326 = new OpenLayers.Projection("EPSG:4326");
var map;
var markers;
+var vectors;
var popup;
var nonamekeys = {
};
OpenLayers._getScriptLocation = function () {
+ // Should really have this file as an erb, so that this can return
+ // the real rails root
return "/openlayers/";
}
var nonamekey = nonamekeys[document.domain];
var noname = new OpenLayers.Layer.OSM("NoName", [
- "http://a.tile.cloudmade.com/" + nonamekey + "/3/256/",
- "http://b.tile.cloudmade.com/" + nonamekey + "/3/256/",
- "http://c.tile.cloudmade.com/" + nonamekey + "/3/256/"
+ "http://a.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png",
+ "http://b.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png",
+ "http://c.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png"
], {
displayOutsideMaxExtent: true,
wrapDateLine: true,
map.addLayer(maplint);
var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
+
markers = new OpenLayers.Layer.Markers("Markers", {
displayInLayerSwitcher: false,
numZoomLevels: numZoomLevels,
projection: "EPSG:900913"
});
map.addLayer(markers);
-
+
return map;
}
return marker;
}
+function addBoxToMap(boxbounds) {
+ if(!vectors) {
+ // Be aware that IE requires Vector layers be initialised on page load, and not under deferred script conditions
+ vectors = new OpenLayers.Layer.Vector("Box Layer", {
+ displayInLayerSwitcher: false
+ });
+ map.addLayer(vectors);
+ }
+ var geometry = boxbounds.toGeometry().transform(epsg4326, map.getProjectionObject());
+ var box = new OpenLayers.Feature.Vector(geometry, {}, {
+ strokeWidth: 2,
+ strokeColor: '#ee9900',
+ fillOpacity: 0
+ });
+
+ vectors.addFeatures(box);
+
+ return box;
+}
+
function openMapPopup(marker, description) {
closeMapPopup();
markers.removeMarker(marker);
}
+function removeBoxFromMap(box){
+ vectors.removeFeature(box);
+}
+
function getMapCenter(center, zoom) {
return map.getCenter().clone().transform(map.getProjectionObject(), epsg4326);
}
function setMapCenter(center, zoom) {
+ zoom = parseInt(zoom);
var numzoom = map.getNumZoomLevels();
if (zoom >= numzoom) zoom = numzoom - 1;
map.setCenter(center.clone().transform(epsg4326, map.getProjectionObject()), zoom);
map.zoomToExtent(extent.clone().transform(epsg4326, map.getProjectionObject()));
}
-function getMapExtent(extent) {
+function getMapExtent() {
return map.getExtent().clone().transform(map.getProjectionObject(), epsg4326);
}