【问题标题】:How to ensure that a given country is contained in a Google Maps map如何确保给定国家/地区包含在 Google Maps 地图中
【发布时间】:2016-09-16 18:12:04
【问题描述】:

我是 Google 地图的新手,如果解决方案对有经验的用户来说显而易见,请见谅,但我在文档中找不到任何相关信息。

我想制作一张埃及地图。

据我所知,我必须这样做

  1. 在国家中心创建一个带有“center”参数的地图 -- LatLng(27.274553, 30.256790)

  2. 确保整个国家都包含在地图中,即定义缩放系数

经过反复试验,我发现 zoom:6 是我用来显示地图的

中的合适值。

我想知道是否有更好的方法来计算缩放系数,例如绘制一个包含 2 个点(NE、SW)提供的矩形的地图。

感谢您的建议。

【问题讨论】:

标签: google-maps-api-3


【解决方案1】:

使用Geocoder 为您感兴趣的国家/地区确定推荐的视口/边界。

var geocoder, map, marker;

function codeAddress(address) {
  geocoder.geocode({
    'address': address
  }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      if (results[0].geometry.viewport)
        map.fitBounds(results[0].geometry.viewport);
      else if (results[0].geometry.bounds)
        map.fitBounds(results[0].geometry.bounds);
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

function initialize() {
  geocoder = new google.maps.Geocoder();
  map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  codeAddress("Egypt");

}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>

【讨论】:

  • 感谢您的回答您提供的代码显示了一张以埃及为中心的地图,但比例尺不是我想要的,这就是我的问题的主题。换句话说:有没有办法自动计算缩放因子,以便国家完全包含在
    中?但尽可能地填充它?
  • google maps API 中的缩放级别是离散的。有一些填充,因此您可以放大一次,仍然可以看到该国家/地区的全部或大部分地区,但这不能保证。
  • 谢谢!我知道答案是“不,没有办法做到这一点”。至少这让我明白了!
  • 其实答案是“是”,您只需在 LatLngBounds 对象中输入 NE/SE 点并运行 map.fitBounds() 见stackoverflow.com/questions/2818984/…
猜你喜欢
相关资源
最近更新 更多
热门标签