我正在使用OpenLayers为我的程序创建一个感兴趣的框。我正在使用此代码:
var control = new OpenLayers.Control();
OpenLayers.Util.extend(control, {
draw: function () {
this.box = new OpenLayers.Handler.Box( control,
{"done": this.notice},
{keyMask: OpenLayers.Handler.MOD_SHIFT});
this.box.activate();
},
notice: function (bounds) {
areaSelected(bounds);
}
});
map.addControl(control);
捕获“Shift创建框”control并使用选定的区域作为我感兴趣的区域。但是值会以像素的形式返回。但我想要经度和纬度,而不是像素。鼠标位置control确实显示正确的长度& LAT。我真的不在乎如何创建盒子,我只想要一个简单的方法让用户选择一个区域的地图,我需要得到lat&该地区的多头。 (Box,Circle,无所谓)
答案 0 :(得分:0)
退房:http://garmin.na1400.info/routable.php
它有一个复选框,可以设置“启用磁贴选择”设置它。
现在,当您在地图上拖动一个框时,它将选择基础对象。
您可以重复使用源代码。所有的魔力都在:http://garmin.na1400.info/routable.js
答案 1 :(得分:0)
很晚才回复,但我将来帮助别人!
我设法通过执行以下操作从像素中获取小数度数:
var point1 = new OpenLayers.Pixel(bounds.left, bounds.bottom);
var point2 = new OpenLayers.Pixel(bounds.right, bounds.top);
var ll1 = map.getLonLatFromPixel(point1);
var ll2 = map.getLonLatFromPixel(point2);
将其放入通知功能中,您将获得ll1&中的lat / long对。 LL2!