【问题标题】:Pass dynamic parameters from openlayers to mapsever via tilecache通过 tilecache 将动态参数从 openlayers 传递到 mapsever
【发布时间】:2013-12-11 15:15:39
【问题描述】:

我正在构建一个地图应用程序,其中形状和颜色沿着这条路径:

PostGIS > 地图服务器 > TileChache > OpenLayers

当所有参数都被硬编码时,一切正常。但我需要用户能够更改参数,例如,选择人口大于“X”的特征和“Y”下的区域。

我想,参数可以作为查询传递给 Mapserver,附加到 mapfile,如下所示:

.../mapfile.map?area=123&population=456

但我找不到通过 TileCache 传递它的方法。目前 - 我看到的唯一解决方法 - 是在 tilechache.cfg 中为 X 和 Y 的任何可能组合定义一个单独的层,这似乎不是一个好方法。而且 tilechache.cfg 中定义的层数必须有一定的限制

有什么解决办法吗?

【问题讨论】:

    标签: parameters openlayers mapserver tilecache


    【解决方案1】:

    您可能需要重新考虑您在这里所做的事情。 Tilecache 用于静态切片。如果你已经渲染了一个 tile 并把它放在 tilecache 中并且你改变了 url 参数你期望会发生什么?如果两个用户使用不同的 url 参数请求同一个图块怎么办?

    如果您有少量有效参数,并且您希望为用户可以选择的每个可能的唯一参数组合生成多个缓存副本,那么您可以使用属性配置 tilecache。

    您更可能想要做的事情是为静态基础地图创建一个 tilecache,然后使用额外的 OpenLayers 图层渲染拉入叠加层按需直接到 mapserver 并通过传递 tilecache。

    【讨论】:

    • 感谢您的回答,我明白了。因此,对于每个参数组合,我可能会在 tilecache.cfg 中使用单独的层。希望如果有层,我不会达到层的限制。说到“动态与静态”图块:理想情况下,我希望 TileCache 将参数值的不同组合视为不同的图块。因此,每当请求新的参数组合时,都会渲染和缓存一个新的图块。为什么 TileCache 可以接受参数,例如Lat/Lon 是“动态的”,不能对自定义参数做同样的事情。
    • 我不知道Tilecache的细节,因为我主要使用Mapserver的mapcache,但概念基本相同。根据开发人员和社区的需要,各种缓存包的实现细节有所不同。缓存背后的整个想法是您可以重复使用切片。如果你只是因为参数总是在变化而创建大量随机图块,那么重复使用率很低,而且按需绘制通常更便宜。
    • 不,不,抱歉,我在第一条消息中并不清楚。我确实想重复使用瓷砖。所以新的参数组合将出现在大约。每 1000 个请求。但我仍然需要允许任何理论上的组合。
    • 无论如何,感谢您的意见。我会检查地图缓存。它可能具有我需要的功能。
    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多