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 の各目印には、次のような 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>

Google マップ オブジェクトで目印をクリックすると正しい ID が返されますが、約 50% の時間obj.featuredData.idnull(ZERO_RESULTSステータスがstatusフィールドにある ) です。さまざまなデータ セット (100 ポイントから 1000 ポイントまで) を試しましたが、役に立ちません。また、緯度、経度の異なる精度を試しました。

4

1 に答える 1

0

そのページに記載されている制限のいずれかに達した可能性があります: https://developers.google.com/kml/documentation/mapsSupport?hl=en

ファイルごとに最大 1000 個の機能が気になることがあります。

于 2015-08-24T17:26:50.397 に答える