如何在openLayers地图中获得屏幕的左上角和右下角x y位置?

时间:2014-03-03 11:14:26

标签: javascript openlayers

我的问题是,当我的地图加载时,我希望按照分辨率获得屏幕四个角的X和Y坐标。我的代码:

map = new OpenLayers.Map("mapdiv", {
  controls: [new OpenLayers.Control.Navigation(),
    new OpenLayers.Control.PanZoomBar()
  ],
  numZoomLevels: 10
});

map.addLayer(new OpenLayers.Layer.OSM("OpenCycleMap"));
epsg4326 = new OpenLayers.Projection("EPSG:4326");
epsg900913 = new OpenLayers.Projection("EPSG:900913");
var lonLat = new OpenLayers.LonLat(72.58, 23.03).transform(epsg4326, epsg900913);
console.log(lonLat);
var zoom = 15;

var markers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(markers);
map.events.register("click", map, function (e) {
  var lonlat = map.getLonLatFromViewPortPx(e.xy);
  alert(lonlat);
});
markers.addMarker(new OpenLayers.Marker(lonLat));
var polygonLayer = new OpenLayers.Layer.Vector("Polygon Layer");

map.addLayer(polygonLayer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition());
map.setCenter(lonLat, zoom);

1 个答案:

答案 0 :(得分:0)

你可以试着尽可能地发一个小提琴。假设您正在使用OpenLayers v2。

如果您打算询问如何获取视口的角落,请尝试:

map.getViewport().getClientRects()[0]

如果你的意思是坐标的范围:

map.getExtent()