用户获取自由手绘折线的坐标。 (ArcGIS API for JavaScript)

时间:2013-01-19 20:24:13

标签: javascript map coordinates arcgis polyline

我是新来的,现在我已经使用ArcGIS javascript api大约两周了。

我遵循了这个例子:

http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/graphics_add

我能够在地图上绘制一条自由手折线。现在我需要计算该折线上每个点的坐标。我现在已经尝试了大约5天,我无法弄清楚如何做到这一点。如果你们中的任何人能够解释我如何详细解释,我将不胜感激(因为我没有太多的经验)。

提前致谢,

迭。

1 个答案:

答案 0 :(得分:2)

您需要检查从事件onDrawEnd获得的geometry对象 - 此事件已在示例中被挂钩:

dojo.connect(tb, "onDrawEnd", addGraphic);

但它所做的就是用基本符号将线条添加到地图中。第一个陷阱是几何对象实际上不是geometry类型 - 这是一个实际上不存在的抽象基类。类型将取决于您用于绘制形状的工具 - 在您的情况下,它听起来像是Polyline类型。

此Polyline对象具有属性paths,它是一个嵌套的路径数组(行),每个路径都包含一个点数组。因此,如果您想获得Polyline对象中所有路径的所有点:

function addGraphic(geo) {
    //For each path...
    for ( var path = 0; path < geo.paths.length; path ++ ) {
        //For each point in the path...
        for ( var pt = 0; pt < geo.paths[path].length; pt++ ) {
            //Do something with each point in here...
            //X coordinate: geo.paths[path][pt][0]
            //Y coordinate: geo.paths[path][pt][1]
        }
    }
}

您可能希望对诸如是否实际拥有Polyline或其他继承自geometry的对象进行更多检查,因为包含实际坐标的属性在Polyline,Polygon之间变化,点等。