我如何确定谷歌地图的最大缩放级别整数

How do i determine the Max Zoom Level integer for Google Maps?

本文关键字:缩放 整数 何确定 谷歌地图      更新时间:2023-09-26

是否有一种方法可以生成代表Google地图最大缩放级别的实际整数?在静态或Java API?

是,您可以为您正在查看的地方生成最大缩放级别:

getMaxZoomAtLatLng(latlng:LatLng, callback:function(MaxZoomResult))

返回卫星地图类型在特定LatLng上可用的最大缩放级别。由于此请求是异步的,您必须传递一个回调函数,该函数将在请求完成时执行,传递一个MaxZoomResult。

你也可以通过使用MapOptions

maxZoom属性来设置允许的最大缩放级别(例如,防止用户完全放大)

将在地图上显示的最大缩放级别。如果省略或设置为null,则使用当前映射类型的最大缩放。

阅读这里的所有内容。(CTRL+F并查找"maximum zoom")

http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html

每个地图还包含一个缩放级别,它定义了当前视图的分辨率。在法线地图视图中,可以在0(最低的缩放级别,在一张地图上可以看到整个世界)到19(最高的缩放级别,可以看到单个建筑物)之间进行缩放。缩放级别取决于你在世界上看的地方,因为地球上一些地方的数据比其他地方的数据更明确。可在卫星视野内放大至20。

似乎只是硬编码19是相对安全的,但如果你需要精确的最大值19缩放不被允许的地方(军事基地和什么)或20被允许的地方(不确定),我不知道如何确定。也许你可以通过setZoom检测到这一点,然后立即调用getZoom,如果从getZoom返回的数字不是你刚刚设置的那个,那么你在一个非标准位置。

如果对您有帮助,下面是实际代码

被接受的答案指向正确的方向。您需要的文档在[这里][1]。

这是2019年的现代ES6代码:

    /* Determine max zoom at location */
    const location = { lat: _LATITUDE_, lng: _LONGITUDE_ }
    const getMaxZoom = new google.maps.MaxZoomService()
    getMaxZoom.getMaxZoomAtLatLng(location, (response) => {
      console.log('Max zoom at this location:', response.zoom)
    })

  [1]: https://developers.google.com/maps/documentation/javascript/maxzoom