我不确定为什么会突然发生这种情况,但我使用google maps api和jquery的应用程序不再像以前一样加载KML文件。我没有改变代码,所以我不知道原因是什么。我已经更新了jquery库,认为可能导致问题没有运气。我确保kml文件仍然存在于他们所在的正确位置。我已经读到谷歌正在改变KML叠加层的工作方式,但我对这篇文章的理解是在二月份,但我还没想到它。
如果我猜,我会说它不再支持setMap()函数,但此时我不知道,我只是在猜测。
非常感谢任何帮助。 谢谢!
以下是我用来加载KML文件的代码。
<link rel="stylesheet" href="jQuerythemes/jquery.mobile.theme-1.4.5.min.css" />
<link rel="stylesheet" href="jQuerythemes/jquery.mobile.structure-1.4.5.min.css" />
<link rel="stylesheet" href="jQuerythemes/jquery.mobile.icons-1.4.5.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="jQuerythemes/jquery-2.1.3.min.js"></script>
<script src="jQuerythemes/jquery.mobile-1.4.5.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places"></script>
<script src="jQuerythemes/jquery.geocomplete.min.js"></script>
<script type="text/javascript">
$(document).on('pageshow', '#map_page', function () {
initialize();
layersOFFonload();
});
var routesLayerKML = [];
function initialize() {
// set the default center of the map
var mapCenter = new google.maps.LatLng(55.1669513, -118.8031093);
//updateMapSize(mapCenter);
// set the display options for the map
var myOptions = {
mapTypeControl: false,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: mapCenter
}
// add the map to the map placeholder
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
});
var kmlOptions = {
suppressInfoWindows: false,
preserveViewport: false,
map: map
};
routesLayerKML[0] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route1.kml', kmlOptions);
routesLayerKML[1] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route2.kml', kmlOptions);
routesLayerKML[2] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route3.kml', kmlOptions);
function layersOFFonload(){
routesLayerKML[0].setMap(null);
routesLayerKML[1].setMap(null);
routesLayerKML[2].setMap(null);
}
function toggleLayer(i) {
if (routesLayerKML[i].getMap() === null) {
routesLayerKML[i].setMap(map);
}
else {
routesLayerKML[i].setMap(null);
}
}
<div data-role="page" id="map_page">
<div data-role="panel" id="routeLayersPage" data-position="right" data-display="overlay">
<div data-role="header">
<h1>Routes</h1>
</div>
<div>
<input type="checkbox" id="routesLayerKML0" onclick="toggleLayer(0)" />
<label for="routesLayerKML0">Route 1</label>
<input type="checkbox" id="routesLayerKML1" onclick="toggleLayer(1)" />
<label for="routesLayerKML1">Route 2</label>
<input type="checkbox" id="routesLayerKML2" onclick="toggleLayer(2)" />
<label for="routesLayerKML2">Route 3</label>
<input type="checkbox" id="routesLayerKML3" onclick="toggleLayer(3)" />
</div>
<a href="#my-header" data-role="button" data-rel="close">Close panel</a>
</div>
答案 0 :(得分:0)
正如@geocodezip所述,IIS中缺少MIME类型。