我正试图在Google App Engine上实现地图切片引擎。如何在Google App Engine上实现高效的地图切片引擎?
地图数据存储在数据库,数据存储(大表)中。问题是20个请求可能大约在同一时间基于数据库中相同的一组行来绘制20个图块。
所以有20个请求进来,如果我为每个请求写入从数据库中读取的代码,那么我将从数据库中读取20个相同的数据,每个数据块读取一个图像输出。由于每次读取都是相同的查询,因此执行相同的查询20次没有意义。事实上,这是非常低效的。
任何人都可以提出一个更好的方法来做到这一点?
如果我使用memcache,我需要将数据放入memcache,但同时有20个请求进入数据,那么如果我做了一个nieve实现,那么20个进程将写入memcache,因为它们都在同时进行。
我在Google App引擎上的Google Go版本1测试版中进行编程,因为它们更完整,所以我在这里提到Python文档。
参考文献:
谷歌数据存储http://code.google.com/appengine/docs/python/datastore/overview.html
传单JS我使用的用于显示地图图块http://leaflet.cloudmade.com/
澄清。我从数据库中的数据生成平铺图像,也就是我查询数据库的数据(这不是平铺图像),然后我将数据绘制成图像并将图像呈现为JPEG格式。由于GAE是有效的,在服务器端http://blog.golang.org/2011/12/from-zero-to-go-launching-on-google.html
我从数据库中的数据生成平铺图像,即查询数据库中的数据,然后将数据绘制成图像并将图像呈现为JPEG格式。由于GAE在服务器端绘制图像效率很高http://blog.golang.org/2011/12/from-zero-to-go-launching-on-google.html – Phil 2012-03-06 06:58:13
@Phil我认为PNG会给你地图图像数据的更好结果(质量/压缩)。 – 2012-03-06 06:59:52
@Phil下载图片客户端也会更好吗?这就是所有地图服务(Google/Bing/Quest)如何执行此操作的方式。 – 2012-03-06 07:01:28