Google Maps API中的国家/地区特定缩放级别

时间:2015-01-24 14:22:06

标签: javascript google-maps google-maps-api-3 google-maps-api-2

我试图制作一张只展示荷兰的谷歌地图。但是当我使用缩放级别6时它也显示比利时和德国,当我使用缩放等级7时,它缩放得太远,因为它没有显示完整的国家。

我怎样才能让荷兰只展示,而不是德国和比利时(或者至少是其中很小一部分)。

目前它看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:8)

  1. 转到http://www.gadm.org/download,下载adm0 file for the Netherlands

  2. 将该多边形(作为内环)与覆盖整个地球的多边形相结合

  3. 使用winding reversal tool来反转任何不与外圈相对的内部多边形。

  4. 压缩生成的kml,重命名为kmz。使用geoxml3

  5. 在地图上显示

    代码:

    function initialize() {
        var map = new google.maps.Map(
        document.getElementById("map_canvas"), {
            center: new google.maps.LatLng(85.4419, -122.1419),
            zoom: 13,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        var geocoder = new google.maps.Geocoder();
        var geoXml = new geoXML3.parser({
                        map: map,
                        zoom: false, 
                     });
        geoXml.parse("http://www.geocodezip.com/geoxml3_test/kmz/nld_adm0_inverted.kmz");
        google.maps.event.addListener(geoXml,'parsed', function() {
          geocoder.geocode( { 'address': "Netherlands"}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
              map.fitBounds(results[0].geometry.viewport);
            } else {
              alert("Geocode was not successful for the following reason: " + status);
            }
          });    
        })
    }
    google.maps.event.addDomListener(window, "load", initialize);
    

    Working example

    Example of map

    要限制它始终显示在地图上,请参阅this page

    中的Mike Williams' v2 tutorial

    working example