谷歌地图KML图层标记点击事件返回ZERO_RESULTS

7

将监听器附加到KML图层:

var layer = new google.maps.KmlLayer('http://sites.google.com/site/kmlprototypes/kmls/temp.kml?dc_=' + Math.random(),
{suppressInfoWindows:true,preserveViewport:true});

layer.setMap(map);

google.maps.event.addListener(layer, 'click', function (obj) {
    alert(obj.featureData.id);
});

KML文件是有效的(通过验证API检查),您可以在这里找到它。每个XML中的placemark都有类似于id属性的标识符:

<Placemark id="46">
  <Style>
    <IconStyle>
      <Icon>
        <href>
          <![CDATA[http://chart.apis.google.com/chart?chf=bg,s,EAF7FE02&chxt=y&chbh=a,4,4&chs=48x48&cht=bvg&chco=FF0000,0000FF&chds=20,9048.00,0,9048.00&chd=t:8149.00|9048.00]]>
        </href>
      </Icon>
    </IconStyle>
  </Style>
  <Point>
    <coordinates>30.49566650390625,50.721378326416016</coordinates>
  </Point>
</Placemark>

当在谷歌地图上点击一个标记时,对象会返回正确的id,但有时约50%的时间obj.featuredData.idnullstatus字段中显示ZERO_RESULTS状态)。我已经尝试了不同的数据集(从100个点到1000个点),但没有帮助。我还尝试了不同的纬度和经度精度。


只有自定义标记(即“图表”)出现了问题吗? - geocodezip
2
看起来你的KML包含太多自定义标记。这里使用geoxml3进行渲染(需要一段时间才能渲染)。如果隐藏这些标记(点击隐藏按钮),然后显示KmlLayer,您会看到默认蓝色标记和自定义标记的组合。 - geocodezip
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接