这是我的代码:
<html><head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 500px; width: 500px; }
</style>
<title>Map Your Reps</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api /js?key={key}"></script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-34, 92),
zoom: 7
};
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var kmlUrl = "http://{HOST}/kml/file.kml";
var kmlOptions = {
suppressInfoWindows: true,
preserveViewport: false,
map: map
};
var kmlLayer = new google.maps.KmlLayer(kmlUrl, kmlOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<h1>Map</h1>
<div id="map-canvas"/>
</body></html>
出于某种原因,虽然可以公开访问.kml文件,但API并没有加载它。
我在Chrome的开发者工具的网络标签中注意到以下请求:
https://maps.googleapis.com/maps/api/js/KmlOverlayService.GetOverlays?1shttp%3A%2F%2F{HOST}%2Fkml%2Ffile.kml&callback=_xdc_._9dx071&token=97074
回应是:
/**/_xdc_._9dx071 && _xdc_._9dx071( [0,null,null,null,null,null,3,[["client","2"]]] )
当我加载其他KML文件时,此数据结构表示文件中的数据。
一些事实:
我很感激我可以帮助弄清楚为什么这个KML图层没有加载。
谢谢!
答案 0 :(得分:1)
我遇到了同样的问题(响应中为空)。事实证明我是通过服务器上的iptables阻止谷歌。