我试图做到这一点,以便当用户从表单中选择一些内容并点击提交时,它会将所有内容添加到谷歌地图中。添加标记工作得很好,添加监听事件来添加折线也工作得很好。由于某种原因,KML 文件无法正确叠加。但我不确定我做得是否正确。表单中的值确实正确回显,因此我知道数据至少到达了 map 函数。这是不起作用的代码:
window.onload = function() {
// Creating an object literal containing the properties
// we want to pass to the map
var options = {
zoom: 5,
center: new google.maps.LatLng(39.09, -95.71),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Creating the map
var map = new google.maps.Map(document.getElementById('map'), options);
// Creating a LatLngBounds object
var bounds = new google.maps.LatLngBounds();
// Creating an empty MVCArray
var route = new google.maps.MVCArray();
var polyline = new google.maps.Polyline({
path: route,
strokeColor: "#ff0000",
strokeOpacity: 0.6,
strokeWeight: 5
});
polyline.setMap(map);
google.maps.event.addListener(map, 'click', function(e) {
var path = polyline.getPath();
path.push(e.latLng);
});
kmlFiles.setMap(map);
这里是设置 kmlFiles 变量的代码:
kmlFiles = new google.maps.KmlLayer(<?php echo $_POST['kmlFile']; ?>);
最佳答案
我怀疑您在传递给 KMLLayer 的 URL 周围缺少引号,例如
var 图层 = new google.maps.KmlLayer(http://www.site.com/foo.kml);
无效,同时
var layer = new google.maps.KmlLayer("http://www.site.com/foo.kml");
有效。
关于javascript - 将 KML 图层添加到谷歌地图 API 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626717/