Change abstraction level for map functions
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.
This commit is contained in:
parent
31ebfc8ed0
commit
701325e9ef
6 changed files with 29 additions and 38 deletions
|
@ -88,12 +88,14 @@ function getArrowIcon() {
|
|||
}
|
||||
|
||||
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) {
|
||||
marker.events.register("mouseover", marker, function() { openMapPopup(marker, description) });
|
||||
marker.events.register("mouseover", marker, function() {
|
||||
openMapPopup(marker, description);
|
||||
});
|
||||
}
|
||||
|
||||
return marker;
|
||||
|
@ -155,9 +157,9 @@ function addBoxToMap(boxbounds, id, outline) {
|
|||
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));
|
||||
} else {
|
||||
geometry = boxbounds.toGeometry().transform(epsg4326, map.getProjectionObject());
|
||||
geometry = proj(boxbounds.toGeometry());
|
||||
}
|
||||
var box = new OpenLayers.Feature.Vector(geometry, {}, {
|
||||
strokeWidth: 2,
|
||||
|
@ -197,27 +199,19 @@ function removeBoxFromMap(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) {
|
||||
zoom = parseInt(zoom);
|
||||
zoom = parseInt(zoom, 10);
|
||||
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) {
|
||||
|
@ -265,7 +259,3 @@ function setMapLayers(layerConfig) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function scaleToZoom(scale) {
|
||||
return Math.log(360.0/(scale * 512.0)) / Math.log(2.0);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue