【问题标题】:Adding KML layer to google map API 3将 KML 图层添加到谷歌地图 API 3
【发布时间】:2011-08-14 13:07:32
【问题描述】:

我正在努力做到这一点,以便当用户从表单中选择一些东西并点击提交时,它会将所有东西添加到谷歌地图中。添加标记效果很好,添加监听事件以添加折线也效果很好。由于某种原因,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']; ?>);

【问题讨论】:

  • 代码在我看来没问题。究竟出了什么问题?你真的需要使用 kml 文件吗?

标签: javascript google-maps-api-3


【解决方案1】:

我怀疑您在传递给 KMLLayer 的 URL 周围缺少引号,例如

var layer = new google.maps.KmlLayer(http://www.site.com/foo.kml);

无效

var layer = new google.maps.KmlLayer("http://www.site.com/foo.kml");

有效。

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 2022-06-18
    • 1970-01-01
    • 2018-12-08
    • 2017-08-10
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    相关资源
    最近更新 更多