我正在尝试这样做,以便当用户从表单中选择一些内容并点击提交时,它会将所有内容添加到谷歌地图中。添加标记可以很好地工作,并添加一个监听事件来添加折线也可以正常工作。由于某种原因,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']; ?>);
答案 0 :(得分:0)
我怀疑你错过了传递给KMLLayer的网址的引号,例如。
var layer = new google.maps.KmlLayer(http://www.site.com/foo.kml);
时无效
var layer = new google.maps.KmlLayer(“http://www.site.com/foo.kml”);
有效。