1

我正在使用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 Create a Box”控件并使用选定的区域作为我感兴趣的区域。然而,这些值以像素的形式返回。但我想要Longitude 和 Latitude,而不是像素。鼠标位置控件确实显示了正确的经纬度。我真的不在乎如何创建框,我只想要一种简单的方法让用户选择地图的一个区域,我需要获取该区域的纬度和经度。(框,圈,无所谓)

4

2 回答 2

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 和 ll2 中拥有纬度/经度对!

于 2013-10-23T15:27:21.350 回答
0

退房: http: //garmin.na1400.info/routeable.php

它有一个复选框来设置“启用瓷砖选择”。

现在,当您在地图上拖动一个框时,它将选择底层对象。

您可以重复使用源代码。所有的魔法都在: http: //garmin.na1400.info/routeable.js

于 2009-07-23T16:44:13.170 回答