我是新来的,我已经使用 ArcGIS javascript api 大约 2 周了。
我遵循了这个例子:
http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/graphics_add
而且我能够在地图上自由绘制折线。现在我需要计算该折线上每个点的坐标。我已经尝试了大约 5 天,但我不知道该怎么做。如果你们中的任何人能详细解释我如何做到这一点,我将不胜感激(因为我没有太多经验)。
提前致谢,
迭戈。
我是新来的,我已经使用 ArcGIS javascript api 大约 2 周了。
我遵循了这个例子:
http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/graphics_add
而且我能够在地图上自由绘制折线。现在我需要计算该折线上每个点的坐标。我已经尝试了大约 5 天,但我不知道该怎么做。如果你们中的任何人能详细解释我如何做到这一点,我将不胜感激(因为我没有太多经验)。
提前致谢,
迭戈。
您需要检查geometry
从事件 onDrawEnd 获得的对象 - 此事件已在示例中挂钩:
dojo.connect(tb, "onDrawEnd", addGraphic);
但它所做的只是将线添加到带有基本符号的地图中。第一个陷阱是几何对象实际上不是类型geometry
- 这是一个实际上并不存在的抽象基类。类型将取决于您用于绘制形状的工具 - 在您的情况下,它听起来像是 type Polyline
。
这个折线对象有一个属性paths
,它是一个嵌套的路径(线)数组,每个路径都包含一个点数组。因此,如果您想获取折线对象中所有路径的所有点:
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 等之间有所不同。