【发布时间】:2013-04-22 09:11:20
【问题描述】:
是否可以在 OpenLayers 中基于基础图像层上的某些预定义区域从基础图像层打开另一个图像层 (OpenLayers.Layer.Image)。例如,如果我在基本图像层中设置了五个区域,则缩放到任何一个区域都会打开相应的图像层,而缩小会带回基本图像层?
如果是,你能指出一些示例或方法如何实现这一点。
【问题讨论】:
标签: image zooming openlayers layer
是否可以在 OpenLayers 中基于基础图像层上的某些预定义区域从基础图像层打开另一个图像层 (OpenLayers.Layer.Image)。例如,如果我在基本图像层中设置了五个区域,则缩放到任何一个区域都会打开相应的图像层,而缩小会带回基本图像层?
如果是,你能指出一些示例或方法如何实现这一点。
【问题讨论】:
标签: image zooming openlayers layer
我不了解此类功能 - 基于区域的不同图像层。但也许您会对自托管的自定义磁贴感兴趣? Here's some information 是如何设置的。这个想法是:您从图像创建平铺图像(例如 256x256px),然后您只需从一张大图像创建多个缩放级别。但是在您感兴趣的区域,您可以更改那里存在的平铺图像。缺点是您必须执行的操作数量:您必须将所有图像切割成平铺(或者不切割,如果使用大平铺),手动调整图像大小以适应不同的缩放级别,配置缩放级别,最后 - 更改带有区域的平铺你的兴趣。需要一些图像编辑,但应该可以工作。
【讨论】:
经过大量的试验和错误,我发现它可以在 Openlayers 中使用 OpenLayers.Layer.Image 到地图层。然后创建一个表示圆圈的矢量叠加层 (OpenLayers.Layer.Vector("Overlay")) 并将其作为叠加层添加到地图中。
然后我注册地图的zoomend事件。基于 getZoom() 方法,我可以控制使用 map.setBaseLayer(imageLayer2)
更改图像【讨论】: