0

我几乎不了解 js 或 OpenLayers 以及需要昨天完成的映射项目,因此我陷入了困境。我对其他语言的 OOP 和单元测试之类的东西非常满意。

我有一个“拼图”类型的地图,分为许多有界区域(属性)。单击一个时,边界将突出显示。

还有一个普通的 html 页面,其中包含有关每个属性的更多信息。

我需要创建一个指向地图页面的链接,并自动突出显示属性边界,而无需用户先单击它。我可以很容易地在 url 中传递一些信息,但我不知道下一步该做什么。我是否需要找到 OpenLayers.Control.SelectFeature 类型的对象,然后调用 select 方法?

谢谢 :)

4

1 回答 1

0

我们有由“单元”多边形组成的“区域”。我们的用户可以从菜单中选择一个单位,该单位将在地图上突出显示。这听起来像你正在尝试做的事情。

我们这样做的方式是我们有一个图层来显示一个区域中的所有单位多边形。“all”层中的每个多边形都有不同的颜色,没有边框。如果用户选择了一个特定的单元,那么我们通过将 where 子句传递给服务器来检索第二层,以便只检索一个单元的多边形。“单元”层是相同的多边形填充颜色,但带有深色边框。“单元”层被 OpenLayers 覆盖在“全部”层之上。

对用户来说,看起来“单元”被突出显示——填充从 2 层开始变暗,并且该单元有边框,而其他单元没有边框。我们这样做的另一个原因是用户可以选择打开或关闭“所有”图层 - 它位于基础地图图层的顶部。

听起来你可以有一个“轮廓”层,它只有一个多边形的边界。这个“轮廓”层将覆盖在您的基础层之上,并且看起来您正在突出显示您的一个属性的边界。

我知道这并不能回答您关于如何执行您正在考虑的方法的问题,但它为您提供了一种在某些情况下效果很好的替代方法。

于 2013-04-12T18:11:59.580 回答