Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
将ARCGIS for Js API中绘制各种图形的方法进行封装,方便调用。用时只需要传入参数既可。(在js文件中进行封装定义);
1、新建js文件,新建空对象用于函数的定义
if (!this["gisTool"]) { gisTool={}; }if (!this["gisTool.Map"]) { gisTool.Map = {}; }
定义一个空对象,用于存储各类方法:
//地图交互事件
gisTool.Map.MapTool = {
在mapTool对中进行新建函数,方便不同功能中的调用。
一、获取当前点击的地图坐标
//地图拾取点坐标
getMapPoint: function(callBack) {
map.setMapCursor("crosshair");var mapHandler = dojo.connect(map, "onClick", function(event) {
clearLayer(map,"PointLayer");try{
map.setMapCursor("default");
callBack(event.mapPoint);
dojo.disconnect(mapHandler);//事件值执行一次
} catch(err) { }
});
},
二、绘制圆形(传入对应的参数既可)
drawCircle: function(x, y, R, symbol, graphicLayer, isFly, callBack) {var ptStart = Geometry.drawPoint(parseFloat(x), parseFloat(y), { wkid: 4832});var circleGeometry = newesri.geometry.Circle(ptStart, {"radius": R,
});if(isFly) {
CenterAt(map, circleGeometry);
}var graphic = newesri.Graphic(circleGeometry, symbol);if (callBack != null) {
callBack(circleGeometry);
}
graphicLayer.add(graphic);
},
三、图形定位(单击进行坐标或者geometry定位)
flayCirle: function(map, geometry) {var extent =geometry.getExtent();if (geometry.type == "point") {
extent= new esri.geometry.Extent(geometry.x - 0.0000001, geometry.y - 0.0000001, geometry.x - 0 + 0.0000001, geometry.y - 0 + 0.0000001, map.spatialReference)