有问题加载所有JSON数据到标记层与在For循环



我有一个像下面这样的代码,假设在GraphicLayer projectsG中添加600多个点,并最终将projectsG添加到layer1map,但我不确定我在

中做错了什么
projectsG = new esri.Graphic(project, symbol).setInfoTemplate(projectInfoTemplate);
}
console.log(thepoints);
layer1 = new esri.layers.GraphicsLayer();
for (i = 0; i < points.length; ++i) {
    layer1.add(projectsG);
}

部分,它只将最后一个项目添加到映射中!你能看看下面的代码,让我知道我在循环做错了什么?

  var layer1, 
  var thepoints=[];
  var projectInfoTemplate;
  var projectsG;
var points = [
   {
      "ProjectID":"15260",
      "Longitude":"-118.641508",
      "Latitude":"51.949915",
   },
   {
      "ProjectID":"17043",
      "Longitude":"-125.444557",
      "Latitude":"51.097552",
   },
   ....
      {
      "ProjectID":"13009",
      "Longitude":"-130.257086",
      "Latitude":"56.882834",
   },
   {
      "ProjectID":"17088",
      "Longitude":"-124.160699",
      "Latitude":"50.897618",
   }
];
function drawSeries1() {
for (var i = 0; i < points.length; i++) {
    var projects = points[i];
    var project = new esri.geometry.Point(projects.Longitude, projects.Latitude);                  
    project = esri.geometry.geographicToWebMercator(project);
    var symbol = new esri.symbol.PictureMarkerSymbol("e-Chartreuse.png", 32, 32);
    projectInfoTemplate = new InfoTemplate(); 
    projectInfoTemplate.setTitle("Project Details");
    projectInfoTemplate.setContent('<div>Some Att Here</div> ');
    projectsG = new esri.Graphic(project, symbol).setInfoTemplate(projectInfoTemplate);
    thepoints.push(projectsG);
}
console.log(thepoints);
layer1 = new esri.layers.GraphicsLayer();
for (i = 0; i < points.length; ++i) {
    layer1.add(projectsG);
}
map.addLayer(layer1);           

}

try this for loop:

for (var i = 0; i < thepoints.length; ++i) {
  layer1.add(thepoints[i]);
}

甚至更好,你可以跳过最后一个for循环,用layer1.add(projectsG);替换thepoints.push(projectsG);在前面的for循环

最新更新