【问题标题】:Spring and Openlayer conflicts on label rendering?标签渲染上的 Spring 和 Openlayer 冲突?
【发布时间】:2012-12-21 16:54:10
【问题描述】:

我需要使用 Jquery 来处理网页上的其他元素。我尝试将标签放在具有以下样式的矢量图层上:

  var vector_style = new OpenLayers.Style({
            'fillColor': 'red',
            'fillOpacity': .8,
            'strokeColor': '#aaee77',
            'strokeWidth': 3,
            'pointRadius': 8,
            'label': "${name}",
            'labelAlign': "cc",
            });

但标签不显示。

我只是想知道这个“${name}”是否存在冲突。 我用一个没有 Jquery 的简单页面再次对其进行了测试。标签确实显示。 请让我如何解决这个问题。谢谢。

更新: 我刚刚发现冲突可能来自 Spring 或 JSTL。我使用 Firebug 工具来检查样式的 javaScript 源代码。它看起来像这样:

    var vector_style = new OpenLayers.Style({
            fillColor: 'red',
            fillOpacity: .8,
            strokeColor: '#aaee77',
            strokeWidth: 3,
            pointRadius: 8,
            label: "",
            labelAlign: "cc",
            });

我从服务器端返回了一个变量:

    model.addAttribute("name", "test");

然后所有功能都显示标签“测试”。

【问题讨论】:

  • 使用jQuery.noconflict() 看看是否有帮助api.jquery.com/jQuery.noConflict
  • 没有帮助。我创建了一个新的 Web 应用程序。该网页仅包含 Jquery 和 Openlayers。有用。似乎冲突不是来自 Jquery。在我使用 spring 框架和 Jquery、superfish 和其他 Jquery 插件的应用程序中。我现在不确定冲突来自哪里。
  • 我发布了新的更新。请立即提供帮助。

标签: jstl label openlayers


【解决方案1】:

问题可能是“cc”的labelAlign 值不存在。

来自 Openlayers 文档:

第一个字符用于水平对齐,第二个字符用于垂直对齐。 ? 水平对齐的有效值:“l”=left,“c”=center,“r”=right。 >垂直对齐的有效值:“t”=top,“m”=middle,“b”=bottom。示例值:“lt”、“cm”、“rb”。 >默认为“厘米”。

尝试删除此行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多