在Google地图上使用KML及其名称显示多边形或圆圈

时间:2012-11-15 05:04:32

标签: google-maps google-maps-api-3 kml

我可以在Google地球上显示KML。 现在我想在地图上显示相同的内容.. 这怎么可能 ? 这是我的KML附件......

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Hide and show labels</name>
    <Style id="sn_hide">
      <IconStyle>
        <scale>0</scale>
      </IconStyle>
    </Style>

    <StyleMap id="msn_hide">
      <Pair>
        <key>normal</key>
        <styleUrl>#sn_hide</styleUrl>
      </Pair>      
    </StyleMap>
    <Placemark>
      <name>Placemark 1</name>
      <description>Label hidding</description>
      <styleUrl>#sn_hide</styleUrl>
      <Point>
        <coordinates>-119.232195,36.016021</coordinates>
      </Point>
    </Placemark>
    <Placemark>
      <name>Placemark 2</name>
      <description>Label hidding</description>
      <styleUrl>#sn_hide</styleUrl>
      <Point>
        <coordinates>-119.232195,36.0162</coordinates>
      </Point>
    </Placemark>

  </Document>
</kml>

提前致谢..     

1 个答案:

答案 0 :(得分:1)

要在Google地图上显示KML,它必须位于可公开访问的网络服务器上。

然后使用Google Maps API v3 KmlLayerGoogle Maps

Google Maps API v3 KmlLayer example from the documentation

显示KML文件的代码:

    var chicago = new google.maps.LatLng(41.875696,-87.624207);
    var mapOptions = {
      zoom: 11,
      center: chicago,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    var ctaLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml');
    ctaLayer.setMap(map);

Here与Google地图上显示的KML文件相同。

更新:

http://www.geocodezip.com/geoxml3_test/Point_Placemarks.Descriptive_HTML_kml.xml“&gt;以下是使用Google Maps API v3 geoxml3第三方解析器显示的评论文件的本地副本 (KmlLayer似乎认为这是一个无效的文件)

Here is that KML displayed on Google Maps