背景资料
我正在尝试使用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文件。
答案 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提供服务。
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;