我创建了一个网站使用 Ordnance Survey(我认为这称为 OpenSpace)生成的基于 OpenLayers 的 api。我已经有了它,因此您可以单击地图来添加标记,然后我希望能够单击标记并将其拖动到地图周围。有没有一种简单的方法可以使用 OpenSpace 或 OpenLayers api 来执行此操作。
OpenLayers api 允许您向地图添加标记和要素。如果您添加功能而不是标记,则可以通过添加以下代码使它们可拖动。
var vectorLayer = new OpenLayers.Layer.Vector("Vector Layer");
var osMap = new OpenSpace.Map('map');
osMap.addLayer(vectorLayer);
var modifyFeaturesControl = new OpenLayers.Control.ModifyFeature(vectorLayer);
modifyFeaturesControl.mode = OpenLayers.Control.ModifyFeature.RESHAPE;
osMap.addControl(modifyFeaturesControl);
modifyFeaturesControl.activate();
这将允许您在地图上拖动要素。如果您想在拖动功能时添加自定义行为,您可以在矢量层上注册侦听器。例如,要在修改功能(即拖动和释放)时注册侦听器,您需要使用以下代码。
vectorLayer.events.register('featuremodified', vectorLayer, function(feature) {
//custom behavior
});
有关可监听的事件的完整列表,请参阅 OpenLayers api 文档OpenLayers API 文档 http://dev.openlayers.org/releases/OpenLayers-2.8/doc/apidocs/files/OpenLayers/Layer/Vector-js.html#OpenLayers.Layer.Vector.OpenLayers.Layer.Vector
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)