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

Get coordinates of a free hand drawn polyline by user. (ArcGIS API for JavaScript)

本文关键字:JavaScript ArcGIS API 坐标 自由 手绘 折线 获取 用户      更新时间:2023-09-26

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

我遵循了这个例子:

http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/样本/graphics_add

我可以在地图上画一条徒手折线。现在我需要计算折线上每个点的坐标。我已经尝试了5天了,但我不知道该怎么做。如果你们中有人能详细地告诉我怎么做,我会很感激的(因为我没有太多的经验)。

提前感谢,

您需要检查从事件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, Point等之间变化