2014-01-15 48 views
1

好的问题是,当我点击地图上的动态图层时,错误的信息或没有信息正在变成低谷。如何从esri小册子的动态图层中获取正确的信息

的例子来使其更容易理解:

将被添加的动态层是:

vestigingLayer1 = L.esri.dynamicMapLayer("http://ags101.prvgld.nl/arcgis/rest/services/IBIS_bedrijventerrein_app/IBIS_bedrijventerrein_app/MapServer", 
     { 
      layers: [0], 
      position: 'front', 
     }) 
map.addLayer(vestigingLayer1); 

,在该层上的鼠标点击反应的codepart是:

map.on("click", function(e) { 

    if(typeof vestigingLayer1 === 'undefined'){ 
    } 
    else{ 
     vestigingLayer1.identify(e.latlng, function(data) { 
      if(data.results.length > 0) { 
       // Popup toevoegen en informatie toevoegen 
       popupText = "<div style='overflow:scroll; max-width:250px; max-height:260px;'>"; 
       for (prop in data.results[0].attributes) { 
        var val = data.results[0].attributes[prop]; 
        if (val != 'undefined' && val != "0" && prop !="OBJECTID" && prop != "Name") { 
         popupText += "<b>" + prop.replace(" (Esri)",'') + "</b>: " + val + "<br>"; 
        } 
       } 
      popupText += "</div>"; 
      //Popup toevoegen op de plaats waar geklikt is. 
      var popup = L.popup() 
      .setLatLng(e.latlng) 
      .setContent(popupText) 
      .openOn(map); 
      } 
     }); 
    } 

所以如果你通过萤火虫关注代码部分,你可以看到数据结果总是给出同一图层的信息(1),或者它没有结果。

另外一个链接到工作网站,使其更清晰一点。 http://geodev.prvgld.nl/geoapp/definitief/kaart.html

如果有人知道这个答案,我真的很感激它。

+0

,不知何故它说,它不具备信息。 这很奇怪,因为在数据库中我可以看到有更多的信息。这可能是因为图层上的可点击部分是一个小点/图标。可能在web服务的某个地方标记为不提供信息?那可能吗? –

回答

0

通过指定此 layers: [0], 定义您的dynamicMapLayer,您只能查看服务中的单个图层。

这可能是为什么“的结果总是给同一层的信息,”我试图挑出层,其中信息应该来自同一个IF语句