5

设定center: new google.maps.LatLng(0,0)意志,设定世界的中心。并将zoom: 1默认缩放到整个世界。

问题是,鉴于地图的大小为 616 像素 x 310 像素,我们如何修改/调整地图的大小,使其很好地适合给定的大小。例如,仅显示世界的一个实例,地图的底部将是非洲的底部。所以随后的世界地图将不再重复。准确地说,使我们的地图绑定如下:

在此处输入图像描述

这是我到目前为止所得到的: 在此处输入图像描述

4

2 回答 2

12

整个世界的“图片”在给定的缩放级别下具有恒定的大小。对于缩放级别 1,它是 512 像素,对于缩放级别 2 1024、3 = 2048、4 = 4096 等...

要适应整个世界而不重复它,您需要有一个小于此缩放级别的整个世界图片的地图 div,否则它将不起作用。

对于缩放级别 1,地图需要 512 才能理想地适合,而不是不换行。

https://output.jsbin.com/vabago 是一个示例,它显示给定缩放级别的世界宽度并将其记录到控制台。当您放大时,它还会调整地图的大小以适应整个世界(通常这样做很愚蠢,但在这里它只是展示了它的工作原理)。

高温高压

于 2012-12-02T19:53:01.690 回答
0

谷歌地图有一系列缩放级别——每一个都更近一步。您以像素为单位设置地图的高度和宽度,然后 google maps api 将加载适当的地图图块以填充提供的窗口。

实际上,它不允许您拉伸地图,而且我相信在缩放 1 时,世界的谷歌地图将是 256 像素 x 256 像素。

这是一个很好的概述,进一步解释了这一点:http: //troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/

此外,如果您在网页中动态放置图钉,您可以使用 api 直接按纬度和经度添加标记。如果您使用的是离线静态图像,那么首先,您应该考虑使用开源的 openstreetmaps 数据,因为您可能需要获得 Google 的进一步许可。对于openstreetmaps,您可能会考虑使用TileMill 或mapnik 等离线工具来放置标记?无论如何 - 阅读投影 - 这将解释纬度和经度坐标如何对应于图像上的像素位置。

您还可以查看http://gis.stackexchange.com,它专门针对与地图相关的问题。

于 2012-11-27T09:28:19.303 回答