在Mapstraction中,需要绘制一个可编辑的多边形。
所以我尝试过example。
但多边形是可编辑模式,而它在示例中调用函数href="javascript:mapstraction.activateEdition();"
。
我试过这样做。没有成功。
如何创建用户可以编辑多边形的多边形,也可以只保留10个顶点多边形。
JS
代码
var polyPoint;
var polyPoints = []
//Adding polygon to map
polyPoint = new mxn.LatLonPoint(17.447612 , 78.223686)
polyPoints.push(polyPoint);
polyPoint = new mxn.LatLonPoint(17.504593 , 78.306084)
polyPoints.push(polyPoint);
polyPoint = new mxn.LatLonPoint(17.471193 , 78.417320)
polyPoints.push(polyPoint);
polyPoint = new mxn.LatLonPoint(17.414201 , 78.470879)
polyPoints.push(polyPoint);
var polygon = new mxn.Polyline(polyPoints);
polygon.setClosed(true);
map.addPolyline(polygon)
//Adding event listeners to map
mapstraction.markerChanged.addHandler(function(event,map,marker){
alert('Marker moved to: '+marker.marker.location.lat+' , '+marker.marker.location.lon)})
mapstraction.polylineChanged.addHandler(function(event,map,polyline){
alert('Polyline modified: Now it has '+polyline.polyline.points.length+' vertices')})
答案 0 :(得分:0)
该示例适用于Mapstraction的idelab分支,因此您需要确保使用的是从该处获得的版本:
我不确定是否仍然支持idelab版本,并且我认为OpenLayers API自最初开发以来已经发生了变化,因此,如果您使用的是正确的版本,那可能就是您遇到问题的原因。
我担心Mapstraction的trunk版本不支持可编辑的地图。主要是因为并非所有的地图提供者都支持它,所以它作为Mapstraction的一部分不太有用。此外,因为大多数人不需要它,因此很难证明将其添加到库中的努力是合理的。
如果您使用OpenLayers并且不需要切换提供程序,则应考虑直接针对OpenLayers API进行编程。如果您确实需要能够切换提供者,您应该联系idelab repo(plopesc)的所有者并检查它是否支持您的用例。