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

标签 javascript map coordinates arcgis polyline

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

我遵循了这个例子:

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

而且我能够在 map 上徒手绘制多段线。现在我需要计算该折线上每个点的坐标。我已经尝试这样做大约 5 天了,但我不知道该怎么做。如果你们中的任何人能详细解释如何做,我将不胜感激(因为我没有太多经验)。

提前致谢

迭戈。

最佳答案

您需要检查从事件 onDrawEnd 中获取的 geometry 对象 - 该事件已在示例中 Hook :

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

但它所做的只是将带有基本符号的线添加到 map 上。第一个陷阱是几何对象实际上不是 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]
        }
    }
}

您可能想要做更多的检查,比如您是否真的有一条折线,或者是否有其他继承自 geometry 的对象,因为包含实际坐标的属性因折线而异, 多边形, 点等

关于javascript - 获取用户自由手绘折线的坐标。 (用于 JavaScript 的 ArcGIS API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418494/

相关文章:

jquery - 使用 inArray() 检查坐标是否在 jQuery 数组中

javascript - 使用ajax抓取表单数据

c++ - std::vector 的 std::lower_bound 比 std::map::find 慢

c++ - 其他列表的每个点与列表的最近点

c++ - 错误 C2064 : term does not evaluate to a function taking 0 arguments

c++ - 为什么STL选择基于树的映射而不是基于散列的映射?

php - 以数学方式将索引转换为网格坐标

javascript - 连接 HTML 和 Javascript

javascript - 从表单外部链接提交表单

javascript - 如何在模态弹出窗口中显示 JSP 页面?