KML文件超过2000个地标

时间:2013-03-28 12:09:21

标签: google-maps-api-3 kml

我想将包含超过2000个地标的kml文件导入googla map。 我使用谷歌api v3。 我只能显示200个地标。 我知道我可以使用更多图层,但我只想要一个,因为我必须每周刷新它,我不想每次都分开。

感谢您的重播

这是代码:

<script>

  var map;
  function initialize() {

    var mapOptions = {
      zoom: 8,
      center: new google.maps.LatLng(47.25,19.5),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById('map-canvas'),
        mapOptions);

    loadKmlLayer(map);

  }

  function loadKmlLayer(map) {
      var ctaLayer2 = new google.maps.KmlLayer('https://.../asdf.kml', {
        suppressInfoWindows: false,
        preserveViewport: false,
        map: map 
    });
}

  google.maps.event.addDomListener(window, 'load', initialize);
</script> 

2 个答案:

答案 0 :(得分:0)

如果您的KML不是很复杂,您可以尝试使用第三方KML解析器(geoxml3geoxml-v3)进行渲染,看看它是否有效(或者指出您遇到的问题)与KmlLayer合作)

答案 1 :(得分:0)

(function(){

window.onload = function() {

    // Creating a new map
    var map = new google.maps.Map(document.getElementById("map"), {
      center: new google.maps.LatLng(47.10,19.5),
      zoom: 8,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    // Creating the JSON data
    var json = [

数据在这里:

{“title”:“City ZIP CODE STREET”,“lat”:47.2876,“lng”:20.4978,“description”:“你的描述”},

                ]

    // Creating a global infoWindow object that will be reused by all markers
    var infoWindow = new google.maps.InfoWindow();

    // Looping through the JSON data
    for (var i = 0, length = json.length; i < length; i++)
    {
        var data = json[i],
            latLng = new google.maps.LatLng(data.lat, data.lng);

        // Creating a marker and putting it on the map
        var marker = new google.maps.Marker({
            position: latLng,
            map: map,
            title: data.title,
        //  icon: iconimage

        });

        // Creating a closure to retain the correct data, notice how I pass the current data in the loop into the closure (marker, data)
        (function(marker, data) {

            // Attaching a click event to the current marker
            google.maps.event.addListener(marker, "click", function(e) {
                infoWindow.setContent(data.description);
                infoWindow.open(map, marker);
            });


        })

        //OnClick event
        (marker, data);

    }
} })();