将单个大图像叠加转换为Google地图的图块

Tro*_*ott 14 google-maps tile google-maps-api-3

我有一个大型高分辨率图像,我正在使用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这肯定是有帮助的,但它不提供来自源图像的图块,所以我必须至少计算出那部分.​​.....)

或者也许有一步一步的算法我可以手动跟随,如果这更直接?(因为它只有一个图像,并且它覆盖了地图上可能是一平方英里的区域,如果不是这样的话,手动执行它可能是可行的.)

Tom*_*mik 13

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

平铺服务器非常容易编写.最简单的方法是在目录结构中托管静态文件(您的磁贴).然后目录结构通常是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


Mur*_*ski 5

您可以在客户端完成整个操作,而无需预切割图块

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

slicer = new JSlicer(document.getElementById('map'), 'myImage.png');
slicer.init();
Run Code Online (Sandbox Code Playgroud)

很简单的。

  • 这种方式无法达到拥有图块的目的,因为客户端必须先下载整个图像,然后才能将其渲染成图块。但是对于某些应用程序可能很有用。 (3认同)