使用javascript/dojo使用svg迭代arcGis地图的不同元素
我正在使用一个特定的地图,上面有不同的图层和元素。地图是使用使用javascript/dojo使用svg迭代arcGis地图的不同元素,javascript,dojo,svg,arcgis,Javascript,Dojo,Svg,Arcgis,我正在使用一个特定的地图,上面有不同的图层和元素。地图是使用arcGis创建的,它创建了一个标签,其中包含所有元素(建筑、道路等) 我的问题是,我可以用javascript/dojo在框架内迭代映射的不同对象吗 其主要思想是在地图客户端更改建筑物或正方形的颜色。有什么想法吗 HTML: Javascript: basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://...", {}); map.addLayer(basemap);
arcGis
创建的,它创建了一个
标签,其中包含所有元素(建筑、道路等)
我的问题是,我可以用javascript/dojo在框架内迭代映射的不同对象吗
其主要思想是在地图客户端更改建筑物或正方形的颜色。有什么想法吗
HTML:
Javascript:
basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://...", {});
map.addLayer(basemap);
非常感谢。假设您的SVG已经在DOM中可用,那么您的问题的答案将是
var elements = document.querySelectorAll("svg *");
for (var i = 0; i < elements.length; ++i) {
if(condition) elements[i].setAttribute("fill", "red");
}
我已经创建了一个空查询,可以遍历所有元素,如下所示:
//initialize query task
queryTask = new esri.tasks.QueryTask("https://...");
//initialize query
query = new esri.tasks.Query();
query.returnGeometry = true;
query.outFields = ["SPAT_NAME"];
query.where = "1=1";
//execute query
queryTask.execute(query,function(results){
console.log(results);
console.log(elements);
for (var i=0, il=results.features.length; i<il; i++) {
var featureAttributes = results.features[i].attributes;
//do stuff
}
}
});
//初始化查询任务
queryTask=新的esri.tasks.queryTask(“https://...");
//初始化查询
query=新的esri.tasks.query();
query.returnGeometry=true;
query.outFields=[“SPAT_NAME”];
query.where=“1=1”;
//执行查询
执行(查询、函数(结果){
控制台日志(结果);
控制台日志(元素);
对于(var i=0,il=results.features.length;iI)无法通过svg元素像这样迭代,因为它内部没有定义元素,这是我初始化网页后得到的svg元素:
//initialize query task
queryTask = new esri.tasks.QueryTask("https://...");
//initialize query
query = new esri.tasks.Query();
query.returnGeometry = true;
query.outFields = ["SPAT_NAME"];
query.where = "1=1";
//execute query
queryTask.execute(query,function(results){
console.log(results);
console.log(elements);
for (var i=0, il=results.features.length; i<il; i++) {
var featureAttributes = results.features[i].attributes;
//do stuff
}
}
});