Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript/dojo使用svg迭代arcGis地图的不同元素_Javascript_Dojo_Svg_Arcgis - Fatal编程技术网

使用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
          }
        }
      });