1

Web ページの他の要素を処理するには、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");

次に、すべての機能に「test」というラベルが表示されます。

4

1 に答える 1

0

labelAlign" " の値がcc存在しないことが問題である可能性があります。

Openlayersのドキュメントから:

最初の文字は水平方向の配置用で、2 番目の文字は垂直方向の配置用です。水平方向の配置に有効な値: 「l」=左、「c」=中央、「r」=右。>vertical 配置の有効な値: 「t」=上、「m」=中央、「b」=下。値の例: 「lt」、「cm」、「rb」。>デフォルトは「cm」です。

この行を削除してみてください。

于 2013-08-30T00:34:21.557 に答える