如何使用arcgis绘制后获取图形点api
How to get graphics points after draw using arcgis api
我想获取多边形点、线点以便将它们存储在数据库中。我正在使用 arcgis api 3.26,我想知道如何获得积分。这是我绘制图形的方式
// markerSymbol is used for point and multipoint, see http://raphaeljs.com/icons/#talkq for more examples
var markerSymbol = new SimpleMarkerSymbol();
markerSymbol.setPath("M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z");
markerSymbol.setColor(new Color("#00FFFF"));
// lineSymbol used for freehand polyline, polyline and line.
var lineSymbol = new CartographicLineSymbol(
CartographicLineSymbol.STYLE_SOLID,
new Color([255,0,0]), 10,
CartographicLineSymbol.CAP_ROUND,
CartographicLineSymbol.JOIN_MITER, 5
);
// fill symbol used for extent, polygon and freehand polygon, use a picture fill symbol
// the images folder contains additional fill images
var fillSymbol = new PictureFillSymbol(
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color('#000'),
1
),
42,
42
);
我可以使用此函数 addGraphics 显示图形
// figure out which symbol to use
var symbol;
if ( evt.geometry.type === "point" || evt.geometry.type === "multipoint") {
symbol = markerSymbol;
//alert(markerSymbol.xoffset);
} else if ( evt.geometry.type === "line" || evt.geometry.type === "polyline") {
symbol = lineSymbol;
//alert(lineSymbol.toJson());
}
else {
symbol = fillSymbol;
alert(fillSymbol);
}
map.graphics.add(new Graphic(evt.geometry, symbol));
alert("X: " + evt.mapPoint.x.toString() + ", <br>Y: " + evt.mapPoint.y.toString());
}
您可以从 evt.geometry
属性中获得积分:
对于点:evt.geometry.x
和evt.geometry.y
对于多点:evt.geometry.points
returns 数组点 https://developers.arcgis.com/javascript/3/jsapi/multipoint-amd.html#points
对于折线:evt.geometry.path
returns 路径数组,其中包含点数组 https://developers.arcgis.com/javascript/3/jsapi/polyline-amd.html#paths
我想获取多边形点、线点以便将它们存储在数据库中。我正在使用 arcgis api 3.26,我想知道如何获得积分。这是我绘制图形的方式
// markerSymbol is used for point and multipoint, see http://raphaeljs.com/icons/#talkq for more examples
var markerSymbol = new SimpleMarkerSymbol();
markerSymbol.setPath("M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z");
markerSymbol.setColor(new Color("#00FFFF"));
// lineSymbol used for freehand polyline, polyline and line.
var lineSymbol = new CartographicLineSymbol(
CartographicLineSymbol.STYLE_SOLID,
new Color([255,0,0]), 10,
CartographicLineSymbol.CAP_ROUND,
CartographicLineSymbol.JOIN_MITER, 5
);
// fill symbol used for extent, polygon and freehand polygon, use a picture fill symbol
// the images folder contains additional fill images
var fillSymbol = new PictureFillSymbol(
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color('#000'),
1
),
42,
42
);
我可以使用此函数 addGraphics 显示图形
// figure out which symbol to use
var symbol;
if ( evt.geometry.type === "point" || evt.geometry.type === "multipoint") {
symbol = markerSymbol;
//alert(markerSymbol.xoffset);
} else if ( evt.geometry.type === "line" || evt.geometry.type === "polyline") {
symbol = lineSymbol;
//alert(lineSymbol.toJson());
}
else {
symbol = fillSymbol;
alert(fillSymbol);
}
map.graphics.add(new Graphic(evt.geometry, symbol));
alert("X: " + evt.mapPoint.x.toString() + ", <br>Y: " + evt.mapPoint.y.toString());
}
您可以从 evt.geometry
属性中获得积分:
对于点:evt.geometry.x
和evt.geometry.y
对于多点:evt.geometry.points
returns 数组点 https://developers.arcgis.com/javascript/3/jsapi/multipoint-amd.html#points
对于折线:evt.geometry.path
returns 路径数组,其中包含点数组 https://developers.arcgis.com/javascript/3/jsapi/polyline-amd.html#paths