15

我有一个大的高分辨率图像,我正在使用 Google Maps v3 API 进行叠加。这适用于具有合理网络连接的台式机和笔记本电脑,但不出所料,它不适用于移动用户。

将图像分解为各种缩放级别的 2D 切片的最佳/最简单方法是什么,以便我可以通过 API 充当 Google 地图的切片服务器?

是否有一个程序可以可靠地为我生成图块,并为每个生成的图块提供必要的缩放和坐标和/或在我提供缩放和坐标的情况下给我正确的图块?

一旦你收集到正确的信息,是否很容易编写一个磁贴服务器来动态完成它?也许那里有我可以用作模型的源代码?(我在http://blog.gmapify.fr/a-map-tile-server-part-2-understanding-google-maps-tile-overlays-and-building-up-a-tile-server找到了一个 tile 服务器这当然很有帮助,但它不提供源图像中的图块,所以我必须至少弄清楚那部分......)

或者,如果更简单,我可以手动遵循分步算法?(由于它只有一张图像,并且它覆盖了地图上可能有一平方英里的区域,因此如果不是最好的话,手动进行这样的操作也许是可行的。)

4

3 回答 3

13

您可以查看 MapTiler http://code.google.com/p/maptiler/。它可以生成您需要的瓷砖。

Tile server 真的很容易写。最简单的方法是在目录结构中托管静态文件(您的图块)。目录结构通常是 servername/zoom/x/y.png(或 zoom/y/x.png)。MapTiler 也产生了这样的结构。MapTiler 还使用图块生成示例网页(但我猜它使用 Google Maps API v2)。

可以在此处找到有关在 Google Maps API v3 中使用图块的信息:http ://code.google.com/apis/maps/documentation/javascript/maptypes.html#CustomMapTypese

于 2011-05-11T09:32:26.763 回答
5

您无需预先切割瓷砖即可在客户端完成所有操作

https://github.com/Murtnowski/GMap-JSlicer

slicer = new JSlicer(document.getElementById('map'), 'myImage.png');
slicer.init();

非常简单。

于 2013-09-12T17:50:11.390 回答
2

有一个关于使用 maptiler 制作地图的非常好的视频教程,可以在这里找到:
Mobile Maps That Aren't Terrible

它专注于移动地图,但也涵盖了 maptiler 和其他基础知识。我发现这很有帮助。

于 2012-03-31T18:37:40.877 回答