Google Maps API未加载KML文件

时间:2018-03-24 07:20:06

标签: javascript api maps kml

背景资料

我正在尝试使用JS API构建谷歌地图。 我的地图位于http://matthewjohnwilson.com/Maps/Maps.html

我想在地图中添加路径以便开始使用https://developers.google.com/maps/documentation/javascript/examples/layer-kml

中的KML示例

我使用MyMaps制作了一张可以在这里看到的地图。 https://www.google.com/maps/d/viewer?mid=1D3USEeIbdVN3zV4B0S8jgODVIS0NHGvY&hl=en&usp=sharing 这样我就可以尝试从MyMaps下载kml文件,然后将其上传到我的网站,以便在我的js api地图中使用。

现在问题。

我的KML文件中的路径不想加载到我的地图中。当我直接转到KML文件时,我收到了404错误,所以我调查了一下,事实证明默认情况下不支持托管在godaddy上的KML文件。所以我编辑了我的网站的Web.config并添加了

<staticContent> 
 <mimeMap fileExtension=".kmz" mimeType="application/vnd.google-earth.kmz" /> 
 <mimeMap fileExtension=".kml" mimeType="application/vnd.google-earth.kml+xml" /> 
</staticContent>

现在,当我直接访问KML文件时,它会尝试下载该文件。我认为这是件好事,至少我希望我的方向正确。但是这些路径仍然没有在我的JS Api地图中加载。

任何人都可以尝试其他任何东西吗?我现在卡住了。第一次使用KML文件。

2 个答案:

答案 0 :(得分:0)

优利卡!我得到了它的工作。所以在godaddy中我必须进入我的MORE / IIS管理并创建一个KML文件夹。在运行IIS 7.然后在我的文件管理器中,我现在在我的站点的webroot上有一个KML文件夹。我将KML文件放在那里并更新http://matthewjohnwilson.com/Maps/Maps.html中的新KML位置并且它有效。所以现在我只需要将我所有的KML文件存放在我网站根目录的KML文件夹中。

答案 1 :(得分:0)

使用MyMaps输出的最简单方法是直接链接到它:

var kmlLayer = new google.maps.KmlLayer({
  url: "http://www.google.com/maps/d/kml?forcekml=1&mid=1D3USEeIbdVN3zV4B0S8jgODVIS0NHGvY",
  map: map
});

然后,当您更改MyMap时地图会更新,并且您不需要配置服务器来为KML提供服务。

&#13;
&#13;
function initMap() {
  var bounds = new google.maps.LatLngBounds();
  var infowindow = new google.maps.InfoWindow();
  var mapOptions = {
    center: {
      lat: 45,
      lng: -100
    },
    zoom: 2,
    mapTypeId: 'roadmap'
  };
  // Display a map on the page
  var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
  var kmlLayer = new google.maps.KmlLayer({
    url: "http://www.google.com/maps/d/kml?forcekml=1&mid=1D3USEeIbdVN3zV4B0S8jgODVIS0NHGvY",
    map: map
  });
}
google.maps.event.addDomListener(window, 'load', initMap);
&#13;
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  padding: 0px;
  margin: 0px;
}
&#13;
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id='map_canvas'></div>
&#13;
&#13;
&#13;