This commit should have no functional affect. It just changes the
abstraction level of OpenLayers from completely abstracting away
getMapExtent etc, to using OpenLayers's functionality directly but
providing proj and unproj to make projections palatable.
}
function addMarkerToMap(position, icon, description) {
}
function addMarkerToMap(position, icon, description) {
- var marker = new OpenLayers.Marker(position.clone().transform(epsg4326, map.getProjectionObject()), icon);
+ var marker = new OpenLayers.Marker(proj(position), icon);
markers.addMarker(marker);
if (description) {
markers.addMarker(marker);
if (description) {
- marker.events.register("mouseover", marker, function() { openMapPopup(marker, description) });
+ marker.events.register("mouseover", marker, function() {
+ openMapPopup(marker, description);
+ });
if (outline) {
vertices = boxbounds.toGeometry().getVertices();
vertices.push(new OpenLayers.Geometry.Point(vertices[0].x, vertices[0].y));
if (outline) {
vertices = boxbounds.toGeometry().getVertices();
vertices.push(new OpenLayers.Geometry.Point(vertices[0].x, vertices[0].y));
- geometry = new OpenLayers.Geometry.LineString(vertices).transform(epsg4326, map.getProjectionObject());
+ geometry = proj(new OpenLayers.Geometry.LineString(vertices));
- geometry = boxbounds.toGeometry().transform(epsg4326, map.getProjectionObject());
+ geometry = proj(boxbounds.toGeometry());
}
var box = new OpenLayers.Feature.Vector(geometry, {}, {
strokeWidth: 2,
}
var box = new OpenLayers.Feature.Vector(geometry, {}, {
strokeWidth: 2,
vectors.removeFeature(box);
}
vectors.removeFeature(box);
}
-function getMapCenter() {
- return map.getCenter().clone().transform(map.getProjectionObject(), epsg4326);
+function proj(x) {
+ return x.clone().transform(epsg4326, map.getProjectionObject());
+}
+
+function unproj(x) {
+ return x.clone().transform(map.getProjectionObject(), epsg4326);
}
function setMapCenter(center, zoom) {
}
function setMapCenter(center, zoom) {
+ zoom = parseInt(zoom, 10);
var numzoom = map.getNumZoomLevels();
if (zoom >= numzoom) zoom = numzoom - 1;
var numzoom = map.getNumZoomLevels();
if (zoom >= numzoom) zoom = numzoom - 1;
- map.setCenter(center.clone().transform(epsg4326, map.getProjectionObject()), zoom);
-}
-
-function setMapExtent(extent) {
- map.zoomToExtent(extent.clone().transform(epsg4326, map.getProjectionObject()));
-}
-
-function getMapExtent() {
- return map.getExtent().clone().transform(map.getProjectionObject(), epsg4326);
-}
-
-function getMapZoom() {
- return map.getZoom();
+ map.setCenter(proj(center), zoom);
}
function getEventPosition(event) {
}
function getEventPosition(event) {
-
-function scaleToZoom(scale) {
- return Math.log(360.0/(scale * 512.0)) / Math.log(2.0);
-}
var bbox = new OpenLayers.Bounds(minlon, minlat, maxlon, maxlat);
var centre = bbox.getCenterLonLat();
var bbox = new OpenLayers.Bounds(minlon, minlat, maxlon, maxlat);
var centre = bbox.getCenterLonLat();
+ map.setExtent(proj(bbox));
addBoxToMap(bbox);
$("#loading").hide();
addBoxToMap(bbox);
$("#loading").hide();
selectControl.activate();
<% if ! @bbox.nil? %>
selectControl.activate();
<% if ! @bbox.nil? %>
- setMapExtent(new OpenLayers.Bounds(<%= @bbox %>));
+ map.setExtent(proj(new OpenLayers.Bounds(<%= @bbox %>)));
+ map.setExtent(proj(bounds));
$("#sidebar_title").html("<%= t 'site.sidebar.search_results' %>");
<% if params[:action] == 'index' -%>
$("#sidebar_title").html("<%= t 'site.sidebar.search_results' %>");
<% if params[:action] == 'index' -%>
- var extent = getMapExtent();
+ var extent = unproj(map.getExtent());
$("#sidebar_content").load("<%= url_for :controller => :geocoder, :action => :search %>", {
query: $("#query").val(),
$("#sidebar_content").load("<%= url_for :controller => :geocoder, :action => :search %>", {
query: $("#query").val(),
<% if bbox %>
var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
<% if bbox %>
var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
+ map.setExtent(proj(bbox));
<% if box %>
$(window).load(function() { addBoxToMap(bbox) });
<% if box %>
$(window).load(function() { addBoxToMap(bbox) });
var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
var zoom = <%= zoom %>;
var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
var zoom = <%= zoom %>;
- <% if params[:scale] and params[:scale].length > 0 then %>
- zoom = scaleToZoom(<%= params[:scale].to_f %>);
+ <% if params[:scale] and params[:scale].length > 0 and params[:scale].to_f > 0 then %>
+ zoom = <%= Math.log(360.0 / (params[:scale].to_f * 512.0)) / Math.log(2.0) %>;
<% end %>
setMapCenter(centre, zoom);
<% end %>
setMapCenter(centre, zoom);
if (min_lon && min_lat && max_lon && max_lat) {
var bbox = new OpenLayers.Bounds(min_lon, min_lat, max_lon, max_lat);
if (min_lon && min_lat && max_lon && max_lat) {
var bbox = new OpenLayers.Bounds(min_lon, min_lat, max_lon, max_lat);
+ map.setExtent(proj(bbox));
} else {
setMapCenter(centre, zoom);
}
} else {
setMapCenter(centre, zoom);
}
removeMarkerFromMap(marker);
removeMarkerFromMap(marker);
marker = addMarkerToMap(centre, getArrowIcon());
}
function updateLocation() {
marker = addMarkerToMap(centre, getArrowIcon());
}
function updateLocation() {
- var lonlat = getMapCenter();
+ var lonlat = unproj(map.getCenter());
var zoom = map.getZoom();
var layers = getMapLayers();
var zoom = map.getZoom();
var layers = getMapLayers();
- var extents = getMapExtent();
+ var extents = unproj(map.getExtent());
var expiry = new Date();
var objtype;
var objid;
var expiry = new Date();
var objtype;
var objid;
}
function remoteEditHandler(event) {
}
function remoteEditHandler(event) {
- var extent = getMapExtent();
+ var extent = unproj(map.getExtent());
var loaded = false;
$("#linkloader").load(function () { loaded = true; });
var loaded = false;
$("#linkloader").load(function () { loaded = true; });
var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
var zoom = <%= zoom %>;
var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
var zoom = <%= zoom %>;
- <% if params['scale'] and params['scale'].length > 0 then %>
- zoom = scaleToZoom(<%= params['scale'].to_f() %>);
+ <% if params[:scale] and params[:scale].length > 0 and params[:scale].to_f > 0 then %>
+ zoom = <%= Math.log(360.0 / (params[:scale].to_f * 512.0)) / Math.log(2.0) %>;
<% end %>
var map = createMap("map");
<% end %>
var map = createMap("map");