谷歌地图API中的国家特定缩放级别

3
我正在尝试制作一个只显示荷兰的谷歌地图。但是当我使用缩放级别6时,它也会显示比利时和德国。而当我使用缩放级别7时,它缩放得太远了,无法显示整个国家。
我该如何使荷兰独立显示,而不显示德国和比利时(或者至少只显示极小的部分)?
当前看起来像这样:

enter image description here

1
缩放级别是整数值,您可能无法获得精确的大小(荷兰不是矩形)。您可以尝试像这样做一些事情,创建一个倒置的多边形,在荷兰上留下一个“洞”,覆盖世界其他地方。 - geocodezip
考虑到荷兰与比利时和德国接壤,如果您显示整个国家,则始终会显示它们的一部分。您可以调整地图div的宽度和高度,在缩放级别6处将其裁剪一些。 - duncan
1个回答

9
  1. 访问http://www.gadm.org/download,下载荷兰的adm0文件

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

  3. 使用反向工具来反转任何与外环不同向的内部多边形

  4. 压缩生成的kml,重新命名为kmz。使用geoxml3显示在地图上

代码:

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);

示例

地图示例

要将其限制为始终显示在地图上,请参见此页面,该页面来自Mike Williams 的 v2 教程

示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接