Arcgis Javascript API 学习(五)简单的周边查询

做周边查询的时候,我考虑过两个方案。

第一个是遍历每一个点距离当前点的距离,不过仔细一想,感觉效率可能很差。主要调用的是GeometryService的lengths-complete事件。这种想法我是pass掉了。

第二个GeometryService还提供了了一个buffer-complete事件。感觉这个比较靠谱点。
示例代码如下:

/*
 *  周边查询的方法
 *  参数
 *  1.中心的坐标点
 *  2.查询的范围
 *  3.查询的图层
 */
dojo.require("esri.tasks.BufferParameters");
function nearbySearchStart(size) {
	geometryService = new esri.tasks.GeometryService(bufferServer);
	var params = new esri.tasks.BufferParameters();
	params.geometries = [ graphicNB.geometry ];
	params.distances = [ size ];
	params.unit = esri.tasks.GeometryService.UNIT_KILOMETER;
	params.bufferSpatialReference = new esri.SpatialReference({wkid: 4326});
	params.outSpatialReference = map.spatialReference;
	geometryService.buffer(params);
	dojo.connect(geometryService, "onBufferComplete", buffercomplet);
}
function buffercomplet(result) {
	var selectLayer = new esri.layers.GraphicsLayer({id:"selectLayer"});
	var symbol = new esri.symbol.SimpleFillSymbol(
			esri.symbol.SimpleFillSymbol.STYLE_NULL,
			new esri.symbol.SimpleLineSymbol(
					esri.symbol.SimpleLineSymbol.STYLE_SHORTDASHDOTDOT, new dojo.Color([105,105,105]), 2), new dojo.Color([255,255,0,0.25])
			);
	var selectGraphic = new esri.Graphic(result[0], symbol);
	selectLayer.add(selectGraphic);
	map.addLayer(selectLayer);
}




你可能感兴趣的:(Arcgis Javascript API 学习(五)简单的周边查询)