ArcGIS API for JS 中,三种查询方式
2017-10-17 10:07
579 查看
1、QueryTask:这种查询方式只能针对一个图层进行空间或属性查询。返回结果是一个FeatureSet,其中FeatureSet.features[i]加入图层显示。(QueryTask进行查询的地图服务并不必项加载到Map中进行显示。)
QueryTask in 3.22api、Query in 3.22api
例如:
var queryTask = new QueryTask("http://localhost/ArcGIS/rest/services/XX/ZhouShi/MapServer/0");//实例化QueryTask
var query = new Query();//定义Query
//设置Query参数
query.returnGeometry = true;//是否返回几何
query.outFields=["*"],//要查询的字段
query.where = "name = '李'"; //查询条件
queryTask.execute(query, showResults);//回调
function showResults (results) {
var resultCount = results.features.length;
var features = results.features;
for (var i = 0; i < resultCount; i++) {//输出对象编译形式
}
map.centerAndZoom(features[0].geometry,11);
}
2、FindTask:对一个地图服务的多个图层对象(全部或指定几个ID索引)做属性查询。返回的是一个FindResults数组,其中FindResults[i].feature加入图层显示。
FindTask in 3.22api、FindParameters
in 3.22api
例如:
var find = new FindTask("http://localhost/ArcGIS/rest/services/XX/ZhouShi/MapServer");//实例化FindTask
var params = new FindParameters();//定义FindParameters
params.layerIds = [2,3];//设置查询的图层id
params.searchFields = ["STATE_NAME","STATE_FIPS"];//设置查询字段
params.searchText = dom.byId("searchText").value;//设置字段值
find.execute(params, showResults);//回调
function showResults(results) {
var result, attribs;
var s = ["<table border=\"1\"><thead><tr style=\"background-color:#ccc;\"><td>State Name</td><td>FIPS</td><td>Population (1990)</td><td>Population (1999)</td></tr></thead><tbody id=\"states\">"];
dojo.forEach(results,function(result){
attribs = result.feature.attributes;
s.push("<tr><td>" + attribs.STATE_NAME + "</td><td>" + attribs.STATE_FIPS + "</td><td>" + attribs.POP1990 + "</td><td>" + attribs.POP1999 + "</td></tr>");
});
s.push("</tbody></table>");
dojo.byId("tbl").innerHTML = s.join("");
}
3、IdentifyTask:对一个地图服务的多个图层对象(全部或指定几个ID索引)做空间查询。返回一个identifyResults数组,其中identifyResults[i].feature加入图层显示。
IdentifyTask in 3.22api、IdentifyParameters
in 3.22api
例如:
QueryTask in 3.22api、Query in 3.22api
例如:
var queryTask = new QueryTask("http://localhost/ArcGIS/rest/services/XX/ZhouShi/MapServer/0");//实例化QueryTask
var query = new Query();//定义Query
//设置Query参数
query.returnGeometry = true;//是否返回几何
query.outFields=["*"],//要查询的字段
query.where = "name = '李'"; //查询条件
queryTask.execute(query, showResults);//回调
function showResults (results) {
var resultCount = results.features.length;
var features = results.features;
for (var i = 0; i < resultCount; i++) {//输出对象编译形式
}
map.centerAndZoom(features[0].geometry,11);
}
2、FindTask:对一个地图服务的多个图层对象(全部或指定几个ID索引)做属性查询。返回的是一个FindResults数组,其中FindResults[i].feature加入图层显示。
FindTask in 3.22api、FindParameters
in 3.22api
例如:
var find = new FindTask("http://localhost/ArcGIS/rest/services/XX/ZhouShi/MapServer");//实例化FindTask
var params = new FindParameters();//定义FindParameters
params.layerIds = [2,3];//设置查询的图层id
params.searchFields = ["STATE_NAME","STATE_FIPS"];//设置查询字段
params.searchText = dom.byId("searchText").value;//设置字段值
find.execute(params, showResults);//回调
function showResults(results) {
var result, attribs;
var s = ["<table border=\"1\"><thead><tr style=\"background-color:#ccc;\"><td>State Name</td><td>FIPS</td><td>Population (1990)</td><td>Population (1999)</td></tr></thead><tbody id=\"states\">"];
dojo.forEach(results,function(result){
attribs = result.feature.attributes;
s.push("<tr><td>" + attribs.STATE_NAME + "</td><td>" + attribs.STATE_FIPS + "</td><td>" + attribs.POP1990 + "</td><td>" + attribs.POP1999 + "</td></tr>");
});
s.push("</tbody></table>");
dojo.byId("tbl").innerHTML = s.join("");
}
3、IdentifyTask:对一个地图服务的多个图层对象(全部或指定几个ID索引)做空间查询。返回一个identifyResults数组,其中identifyResults[i].feature加入图层显示。
IdentifyTask in 3.22api、IdentifyParameters
in 3.22api
例如:
identifyTask = new IdentifyTask(dynamicLayerUrl);//查询 identifyParams = new IdentifyParameters();//查询参数 identifyParams.tolerance = 10;//容差范围 identifyParams.returnGeometry = true;//是否返回图形 identifyParams.layerIds = [ 0 ];//查询图层 identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_VISIBLE;//设置查询的图层 //查询范围 identifyParams.width = map.width; identifyParams.height = map.height; identifyParams.geometry = event.mapPoint; identifyParams.mapExtent = map.extent; identifyTask.execute(identifyParams,showResults); function showResults (results) { var feature; var sGeometry; if (results.length > 0) { for ( var i = 0; i < results.length; i++) { feature = results[i].feature; map.infoWindow.set 97df Title("标注信息"); map.infoWindow.setContent("<span>地区:</span>" + feature.attributes.NAME_ + "<br>" + "<span>机构:</span>" + feature.attributes.TYPENAME_ + "<br>" + "<span>站点:</span>" + feature.attributes.NOTES_ + "<br>" + "<span>地址:</span>" + feature.attributes.LOCATION_); map.infoWindow.show(feature.geometry,map.getInfoWindowAnchor(feature.geometry)); map.infoWindow.show(); } } }
相关文章推荐
- arcgis api for js featurelayer 两种查询方式
- ArcGIS api for js三种查询方法比较
- arcgis api for js 地图查询
- arcgis api for js中使用d3.js标注点的属性值代替textsymbol方式
- arcgis api for js入门开发系列四地图查询
- VS2010发布arcgis api for js 程序
- ArcGIS JS 版军事标绘图(燕尾箭头、钳击箭头、集结地)扇形等自定义图形, ArcGIS For JavaScript API Drawing Tool(绘图工具)————(十七)
- arcgis-api-for-js-之空间参考系统
- web项目调用arcgis api for JS离线包报“https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo/...”错误解决方法
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现语句查询QueryTask(八)
- ArcGIS API for JavaScript 4.2学习笔记[20] 使用缓冲区结合Query对象进行地震点查询【重温异步操作思想】
- ArcGIS API For JS 中由Esri提供的公共服务
- ArcGis for JS 利用QueryTask查询实现对地图的定位功能
- ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式
- ArcGIS API for iOS开发教程(五)数据查询
- ArcGis for js 查询定位、缩放致
- ArcGIS API for JavaScript 4.2学习笔记[25] 官方第八章Analysis(空间查询)概览与解释
- Arcgis api for js:PrintTemplate可以做地图截图功能
- ArcGIS API for Javascript 使用query查询以某个点为半径的圆内的要素出现“esri.config.defaults.io.proxyUrl 尚未进行设置”错误
- ArcGIS for js API 3.10