地图绘制-动态绘制多边形
Mapstraction - draw polygon dynamically
在地图中,地图需要绘制一个可编辑的多边形。所以我尝试了一个例子。但多边形在调用函数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')})
这个例子是针对Mapstraction的idelab分支的,所以你需要确保你使用的是可以从这里获得的版本:
https://github.com/idelab/mxn
我不确定idelab版本是否仍然受支持,我认为OpenLayers API自最初开发以来已经发生了变化,因此,如果你使用的是正确的版本,这可能是你遇到问题的原因。
恐怕Mapstraction的主干版本不支持可编辑地图。主要是因为不是所有的地图提供商都支持它,所以它作为Mapstraction的一部分用处不大。也因为大多数人不需要它,所以很难证明将它添加到库中的努力是合理的。
如果您正在使用OpenLayers,并且不需要能够切换提供程序,您应该考虑直接针对OpenLayers API进行编程。如果您确实需要能够切换提供者,您应该联系idelab repo(plopesc)的所有者,并检查它是否支持您的用例。
相关文章:
- 如何在使用鼠标单击动态绘制多边形时在画布中拖放多边形
- 如何在谷歌地图API中使用坐标数组绘制多边形
- OpenLayers徒手绘制多边形,起点没有弹性线
- 在画布上绘制多边形时的间隙
- 谷歌地图绘制多边形并警告重叠
- 谷歌地图V3绘制多边形并打开信息窗口
- 在谷歌地图 v2 上绘制多边形
- 谷歌地图绘制多边形并缩放到其边界
- 在基于谷歌地图的标记时间中绘制多边形
- 在画布 jquery HTML 中绘制多边形
- 如何在另一个多边形之上绘制多边形
- 打开图层 3 如何以编程方式绘制多边形
- 根据二维数组中的坐标在地图上绘制多边形
- 冷却Infobox并通过xml绘制多边形..在bing映射中,纯javascript
- 可以't在javascript循环中增加php变量,用于在谷歌地图上绘制多边形
- javascript::如何使用数组中的javascript变量在传单上绘制多边形
- 地图绘制-动态绘制多边形
- 如何使用一些 LatLng 在谷歌地图上放置标记,而不是绘制多边形
- 如何处理openlayers绘制多边形事件
- 输入纬度和经度以从文本区域绘制多边形