【问题标题】:Mapstraction - draw polygon dynamicallyMapstraction - 动态绘制多边形
【发布时间】:2013-07-02 08:43:37
【问题描述】:

在 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')})

【问题讨论】:

    标签: javascript map openlayers polygon mapstraction


    【解决方案1】:

    该示例适用于 Mapstraction 的 idelab 分支,因此您需要确保使用的是可以从此处获得的版本:

    https://github.com/idelab/mxn

    我不确定是否仍支持 idelab 版本,而且我认为 OpenLayers API 自最初开发以来已发生变化,因此,如果您使用的是正确的版本,这可能就是您遇到问题的原因。

    恐怕 Mapstraction 的主干版本不支持可编辑的地图。主要是因为不是所有的地图提供者都支持它,所以它作为 Mapstraction 的一部分用处不大。也因为大多数人不需要它,所以很难证明将它添加到库中的努力是合理的。

    如果您使用 OpenLayers 并且不需要切换提供程序,则应考虑直接针对 OpenLayers API 进行编程。如果您确实需要能够切换提供商,您应该联系 idelab 存储库 (plopesc) 的所有者并检查它是否支持您的用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 2011-12-30
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 2023-04-08
      • 2014-08-04
      相关资源
      最近更新 更多