其实有很多种
下面介绍两种
1.主要是这种直接过滤图层
function dynamicLayerData(){
var query = new esri.tasks.Query();
// query.outSpatialReference = {wkid:102100};//空间参考
query.outFields = ["*"];//返回指定字段
query.returnGeometry = true;//返回图形
query.orderByFields = ["OBJECTID"];//排序
query.where = "1=1";
fearturelayer.selectFeatures(query, esri.layers.FeatureLayer.MODE_ONDEMAND, function(results) {
console.log(results.length);
});
//fearturelayer.selectFeatures 也可以写成fearturelayer.query 请参考api fearturelayer query
}2.querytask 大家都很熟悉了 可以参考官网querytaskapi
function queryFeatures(condition){
//创建查询条件
var query = new esri.tasks.Query();
//query.outSpatialReference = {wkid:102100};//空间参考
query.outFields = ["*"];//返回指定字段
query.returnGeometry = true;//返回图形
query.orderByFields = ["OBJECTID"];//排序
if(isEmpty(condition)){
query.where = "1=1";
}else{
query.where = condition;//where条件
}
var querytask = new esri.tasks.QueryTask(dataLayerUrl);
querytask.execute(query, addPointsToMap);
}
/*--------------------------向地图添加点-----------------------------*/
function addPointsToMap(results){
if (!results.hasOwnProperty("features") ||
results.features.length === 0 ) {
return; // no features, something went wrong
}
var features = results.features;
var feature;
var items= [];
for(var i=0;i<features.length;i++){
var symbol11 = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,255,0.35]), 1),new dojo.Color([125,125,125,0.35]));
feature = features[i];
feature.setSymbol(symbol11);
map.graphics.add(feature);
items.push(feature.attributes);
}
resultList = items;
paging(10,3);
}3.当然了还有findtask ……………………
本文介绍了两种在地图应用中实现图层过滤的方法:一种是通过直接操作图层进行筛选,另一种则是利用查询任务(QueryTask)来实现更为复杂的条件查询。文章提供了具体的JavaScript代码示例,展示了如何设置查询条件、获取并显示查询结果。
1万+

被折叠的 条评论
为什么被折叠?



