分别根据地址细节调整缩放的2个问题,反之亦然:
就像谷歌地图一样,当用户时 输入'usa','Washington'或'New 约克',谷歌地图将放大 不同的水平。这取决于如何 具体的用户输入是。
我已经阅读了谷歌地图 api docs关于自动化这个,但没有用。是 有什么简单的方法来实现这个目标吗?
在 google api docs about reverse geolocating,formatted_address 可能是8级 “detailness”
如果用户缩放到特定级别 并在那里定义一个标记 任何简单的方式返回 formatted_address的“corresonding detail level”?或者我需要自己对逻辑进行硬编码?
P.S。我不需要整个详细的代码,我只需要正确的思考方式就可以轻松地自动完成。
答案 0 :(得分:2)
我已经阅读了谷歌地图api文档关于自动化这个,但没有用。有没有简单的方法来实现这个目标?
重新1.当您向Google发送地理编码请求时:
http://maps.google.com/maps/api/geocode/xml?address=usa&sensor=false
您将获得viewport
和bounds
元素。这些矩形显示找到的项目的边界,以及最佳的地图视口以完整显示它。它适用于任何类型的实体,如国家,州和城市。
- <viewport>
- <southwest>
<lat>-5.7034477</lat>
<lng>-161.2792988</lng>
</southwest>
- <northeast>
<lat>64.7366415</lat>
<lng>-30.1464832</lng>
</northeast>
</viewport>
您可以使用fitBounds()
方法缩放地图以适应其中一个。
Re 2。)
问题2是基于缩放调整显示的地址细节。当地图被手动缩放到无法识别街道的水平时,应显示粗略的区域信息而不是详细的街道地址信息
据我所知,这是不可能的:没有办法掌握当前的细节水平。您必须根据数字缩放级别手动估算它 - 何时应显示城市,何时应显示道路等。
答案 1 :(得分:0)
您想要查找Google-Api的getBound方法。 Google地图范围由其空间索引定义。您想查找可以找到您的位置的图块索引。简化getBound以查找此索引,否则需要使用空间填充曲线或空间索引来计算索引。你想寻找Nick的空间索引quadtree hilbert曲线博客。