geometry
イベント onDrawEnd から取得したオブジェクトを検査する必要があります。このイベントは、例では既にフックされています。
dojo.connect(tb, "onDrawEnd", addGraphic);
ただし、基本的なシンボルを使用してラインをマップに追加するだけです。最初のトラップは、ジオメトリ オブジェクトが実際には型geometry
ではないということです。これは、実際には存在しない抽象基本クラスです。タイプは、シェイプを描画するために使用していたツールによって異なります。あなたの場合は、 type のように聞こえます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
実際の座標を含むプロパティは Polyline、Polygon、Point などで異なるため、実際にPolyline があるかどうか、または から継承する他のオブジェクトがあるかどうかなど、さらにいくつかのチェックを行う必要があるでしょう。