我们可以使用localhost中的kml文件吗?

时间:2014-05-08 09:36:06

标签: javascript google-maps kml

这是我的问题:我想从我的本地服务器使用kml文件,但它不起作用。

这是我的代码:

function initialize() {
  var chicago = new google.maps.LatLng(48.807,2.137);
  var mapOptions = {
    zoom: 11,
    center: chicago
  }

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

  var ctaLayer = new google.maps.KmlLayer({
    url: '78.kml'
  });
  ctaLayer.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);

我在这个网站上尝试了我的kml文件并且工作正常

enter image description here

现在可以使用此代码:

<script type="text/javascript" src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script>
        <script type="text/javascript">
            function initialize() {
  var chicago = new google.maps.LatLng(48.807,2.137);
  var mapOptions = {
    zoom: 11,
    center: chicago
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var myKmlOptions = {
        preserveViewport: true,
        suppressInfoWindows: true
    }
var myParser = new geoXML3.parser({map: map});
myParser.parse('78.kml');
  //var ctaLayer = new google.maps.KmlLayer("http://localhost/monDossier/78Yvelines.kml",{color:"#4385F1" } );
  //ctaLayer.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);
        </script>

1 个答案:

答案 0 :(得分:2)

否(至少不与KmlLayer一起使用),KML网址必须是公开的。 localhost未公开发布。

from the documentation

displayed on a map using a KmlLayer object, whose constructor takes the URL of a **publicly accessible KML** or GeoRSS file.

您可以使用第三方解析器,例如geoxml3geoxml-v3,将KML渲染为原生Google Maps Javascript API v3对象,但会出现复杂KML的性能问题。