我可以将OpenLayers用于简单的自定义磁贴网格系统吗?

时间:2013-03-08 07:14:05

标签: javascript html5 maps openlayers

我的数据库中有一个表格,有2.500个图块,所以50 x 50.每个图块的前端尺寸为256px x 256px,并且不应该有缩放级别。 然后是包含其他数据(建筑物,对象)的表格,这些对象中的每一个都可能属于某个图块。

在前端,我想使用全屏OpenLayers来显示一组图块来填充屏幕,并且只能使用拖动和异步。重新加载OpenLayers提供的图块。如果可能,甚至在达到世界地图的边界时自动停止拖动。

我也不想渲染图像(pngs) - 瓷砖应该是空的<div>或者至少是透明的,因为身体的背景无论如何都是重复的草纹理,我想要包含{{ 1}}取决于与模型中的图块关联的对象。

熟悉OpenLayers的人是否可以告诉我,如果可以在后端使用如此简单的自定义模型?这个特定案例的任何资源都会非常有用!

1 个答案:

答案 0 :(得分:1)

是的,如果表格中的每个图块都有一些与之关联的地理空间数据,例如角落的边界或纬度/经度,则可以在OpenLayers中使用。

OpenLayers希望在浏览器的视口中按地理空间放置基础图层(您的图块作为WMS)和功能(您的建筑物和对象作为WMS,WFS或Vector)。诀窍是将OpenLayers限制为单个缩放级别(分辨率)以匹配存储切片的隐式分辨率,然后设置OpenLayers.Map对象的maxExtent以匹配所有切片的范围,以便生成每个WMS切片请求OpenLayers有一个与你的一个瓷砖匹配的边界框。

这是OpenLayers为我所拥有的简单基础层生成的WMS请求(BBOX以米为单位)。该链接位于防火墙后面,因此它不会为您工作:

http://kpnatsp8:9080/WmsServlet?SERVICE=USSTATES&TRANSPARENT=FALSE&FORMAT=image/png&LAYERS=USSTATES&SCALE=4000000.0000000005&SPHERICALMERCATOR=true&MAXEXTENT=-20037508.34,-20037508.34,20037508.34,20037508.34&REQUEST=GetMap&STYLES=&SRS=EPSG:900913&BBOX=-12812623.352549,3443367.869216,-11909512.729118,4346478.492647&WIDTH=640&HEIGHT=640

我有一个Java servlet,它接受该请求并返回一个tile图像。您可以编写自己的servlet或服务器端脚本来接收请求,确定数据库中的哪个磁贴与BBOX边界匹配,并将该磁贴作为图像响应返回。

很抱歉,如果我在这里迂腐,但你对OpenLayers不熟悉。这是我开始的方式,但我对更好的想法持开放态度。