【问题标题】:Set Google Maps Zoom Level According to Display Resolution根据显示分辨率设置谷歌地图缩放级别
【发布时间】:2012-08-29 21:23:45
【问题描述】:

我正在开展一个项目,该项目要求我在网页的给定区域 (div) 中显示整个地球地图(Google 地图中的缩放级别 0)。此外,我必须以这样一种方式显示地图,以使整个世界在不同的分辨率集上保持可见(这些显示分辨率集从 1024x768 开始,并连续增加六个)。如何获得当前的显示分辨率,然后决定将地图初始化到哪个缩放级别?我不需要缩放级别与屏幕分辨率的比率或任何东西。只是我预定义的一组分辨率的测试缩放级别,所以我可以使用 if else 语句来做到这一点。

【问题讨论】:

  • 无效!没有更多的回复,虽然问题被适当地标记了!

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


【解决方案1】:

这是什么语言?在 javascript 中,您可以执行以下操作:

<script type="text/javascript">
if ((screen.width<=1024) && (screen.height<=768)) {
 window.location.replace('http://mappagewithresolutionlowerthan1024x768.com');
}
else {
   window.location.replace('http://mappagewithresolutiongreaterthan1024x768.com');
}
</script>

这意味着您对每种显示类型都有不同的网页。所以这可能不是最好的方法,但至少有获取屏幕大小的命令。

然后你可以使用

map.setZoom(map.getZoom()+1);

设置缩放级别并尝试适合哪个屏幕(可能在线某处有一个列表)

查看:How to set the Google Map zoom level to show all the markers? 以获得更多提示。

但如果你不使用 javascript,那么这是没用的

祝你好运:)

【讨论】:

  • 我将使用 JavaScript 在客户端显示地图,并可能使用 AJAX 和/或 JSON 在其上显示数据点(实际上,这不是这个问题的一部分)。您提供的解决方案需要我开发单独的页面来显示地图。这是一个解决方案,但不是我想要的。看,谷歌地图是在一个 div 内呈现的(或者也可能是其他一些块元素)。在我的网页中,地图将与网页上的其他信息一起显示,因此我无法真正使用此选项。我想要的是在地图初始化时设置缩放级别,以便显示整个地球!
  • P.S:我已经对此主题进行了一些研究,并浏览了您提供给我的链接。对于那个人,他们想设置缩放级别以显示所有数据点,而我想要实现的却有点不同。
【解决方案2】:
map.fitBounds(viewport)

此方法根据给定坐标设置视口和缩放级别。您可以使用从 0 到 180 的坐标构建视口对象(类型 LatLngBounds)。有关详细信息,请参阅the maps reference。此解决方案适用于我的项目。

【讨论】:

  • 看,但不同的是,如果由于某种原因,说覆盖/图钉太近,地图将不得不放大,这会将世界其他地区与地图隔开。我想要做的是在地图初始化时获取屏幕分辨率,然后设置特定的缩放级别,使其显示整个地球地图而不切断任何部分。我不需要在运行时更改缩放级别。
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 2017-10-14
  • 2011-01-22
相关资源
最近更新 更多