2017-02-02 43 views
1

geoserverとsldを初めて使用しています。 OSMベースレイヤーの上に2つのレイヤーがあります。 1つはヒートマップを作成し、もう1つはラベルを作成するためのものです。私のヒートマップとベースレイヤーはうまく表示されていますが、ラベルテキストはオープンレイヤーに表示されません。ジオサーバでプレビューするとうまく表示されますが、javascriptでレンダリングしようとするとズームアウトにのみ表示されます。私はこの問題についてオンラインで何かを見つけることができない。ここGeoserver 2.10 Openlayers 3 TextSymbolizerラベルが表示されない

はSLDである:ここ

<FeatureTypeStyle> 
     <Rule> 
      <Name>AQI text</Name> 
      <Title>AQI Text</Title> 
      <Abstract>AQI information</Abstract> 
      <TextSymbolizer> 
       <label> 
        <ogc:PropertyName>aqi</ogc:PropertyName> 
      </label> 
     </TextSymbolizer> 
     </Rule> 
     </FeatureTypeStyle> 

はgeoserverのプレビューのスナップショットである:ここ

enter image description here

のJavaScript OpenLayersをコードです:

ここ
var londonLonLat = [-0.118092, 51.509865]; 
    var londonWebMercator = ol.proj.fromLonLat(londonLonLat); 

    var layers = [ 
     new ol.layer.Tile({ 
      source: new ol.source.OSM() 
     }), 
     new ol.layer.Image({ 
      //extent: [-13884991, 2870341, -7455066, 6338219], 
      source: new ol.source.ImageWMS({ 
      url: 'http://159.203.81.20:8080/geoserver/wms', 
      params: {'LAYERS': 'tiger:shapefile'}, 
      serverType: 'geoserver' 
      }) 
     }), 

     new ol.layer.Image({ 
      //extent: [-13884991, 2870341, -7455066, 6338219], 
      source: new ol.source.ImageWMS({ 
      url: 'http://159.203.81.20:8080/geoserver/wms', 
      params: {'LAYERS': 'test2:test_text_layer'}, 
      serverType: 'geoserver' 
      }) 
     }) 
     ]; 
     var map = new ol.Map({ 
     layers: layers, 
     target: 'map', 
     view: new ol.View({ 
      center: londonWebMercator, 
      zoom: 10 
     }) 
     }); 

このページのスナップショット:

ここ

enter image description here

ズームアウトでスナップショットである:

投影を変更することによってそれを修正

enter image description here

+0

ちょっと@Wiredo、ここで答えの一つを受け入れるように気をつけますか? :) –

+0

OK。私は実際問題を解決した他の答えを思いついたが、代わりのより詳細な解決策があるのであなたのものを選んだ – Wiredo

答えて

1

は、事前定義された境界点を追加することによって、同様の問題を解決(アンカーのような)をデータベースに追加し、それらのポイントをgeoserverのmy b oundingボックス:内部のデータの視覚化のすべてに適合するのに十分な大きさのボックスを定義します(北、南、東、西 EX)

  • 4ポイントを作成します。
  • geoadminでレイヤーbounding boxを探し、データから計算を選択します。
  • では、これらの境界点を非表示にするルールを定義できます。

ジオサーバが任意の投影でデータを表示する境界ボックスを再計算します。

関連する問題