KML图层并不总是响应点击次数[Google Maps API]

时间:2014-09-28 11:49:28

标签: google-maps maps kml

我正在研究一个项目.jsp文件,该文件显示4 kml层:燃气管道,气体传感器,阀门和区域。

问题在于我想从地标的描述中提取数据并使用它,但是当我点击地标时,有时它会起作用,而其他它不会。我根本无法理解为什么......

我已经创建了一个代码的JSFiddle示例。我添加了2 kml层,一个用于管道,另一个用于传感器。每个管道都有多个传感器(或至少一个)。我在元数据更改中一个接一个地添加了图层,以确保图层顺序的一致性。我为两个层添加了2个单击侦听器,这些层提取描述并处理字符串并提取我需要的内容,以单独的div显示为文本。

有时当我点击传感器或管道时,数据会被提取,有时则表示找不到数据(字符串未定义)。我得到状态=" ZERO_RESULTS"。根据谷歌的说法,如果地理编码器在远程位置通过拉杆,则可能会发生这种情况。我查看了日志,latlog在点(。)之后有超过9个数字,在我的kml中我只有6个。

但这并不是我猜的问题,因为有时候,虽然latlng coord非常准确,(点后面有9个字符),但找到了地标并提取了我需要的信息。它只是命中或错过。

有人可以向我解释为什么会这样吗?

JSFiddle链接:http://jsfiddle.net/sxNy9/185/light/

KML文件:   - https://sites.google.com/site/kmlholdersherb/BrasovLayer_TeziGaz.kml?attredirects=0&d=1   - https://sites.google.com/site/kmlholdersherb/BrasovLayer_Senzori.kml?attredirects=0&d=1

谢谢!

编辑:

包含kml图层:

var PIPES= new google.maps.KmlLayer({url: 'URL HERE', preserveViewport:true});

var SENSORS= new google.maps.KmlLayer({url: 'URL HERE', preserveViewport:true });

之后我将它们添加到地图上。

现在是听众。

google.maps.event.addListener(SENSORS, 'click', function(kmlEvent) {
    var text = kmlEvent.featureData.name;
    var str = kmlEvent.featureData.description;

    //FIND OUT THE STREET
    var x = str.indexOf(".");
    var y = str.indexOf(":");
    var street= str.substring(y+2,x); 

    //ID
    var a = str.indexOf("#");
    var ID = str.substring(a+1,str.length);

    var finaltext = street+ " " + ID;

    showInContentWindow(finaltext); // adding the string into html ( aka the result)
});

然后是PIPES的另一个听众,这是相同的。

0 个答案:

没有答案