2016-04-20 31 views
1

GeoServerでは、地図を表示するレイヤーグループとしてレイヤーグループを取得します。 base_osmOpenlayers道路名を回転

レイヤーには道路名が含まれています。これはOpenlayersで取得できます。 map

ここで、道路名を180度回転させたいとします。 私はいくつかの解決策を見つけようとしますが、何も得られません(間違った方法で)... アドバイスや解決策を教えてください。 私の英語は良くありません、あなたが私が表現したいものを得ることを願っています。 ありがとうございます!

<script type="text/javascript"> 
var map; 
function init() { 
    var proj = new OpenLayers.Projection("EPSG:4326"); 

    var bounds = new OpenLayers.Bounds(103.598434448242, 1.24977505207062, 
      103.993843078613, 1.48103499412537); 
    var options = { 
     controls : [ new OpenLayers.Control.Navigation(), 
       new OpenLayers.Control.PanZoom(), 
       new OpenLayers.Control.ArgParser(), 
       new OpenLayers.Control.Attribution(), 
       new OpenLayers.Control.MousePosition(), 
       new OpenLayers.Control.LayerSwitcher({displayProjection : new OpenLayers.Projection("EPSG:4326")}),], 
     maxExtent : bounds, 
     projection : proj, 
     displayProjection : proj, 
     units : 'degrees' 
    }; 

    map = new OpenLayers.Map('ol-map', options); 

    var tiled = new OpenLayers.Layer.WMS("test_osm", 
      "http://localhost:8088/geoserver/osm/wms" 
      , { 
       LAYERS : 'osm:base_osm', 
       STYLES : '', 
       format : 'image/png', 
       tiled : true, 
      }, { 
       buffer : 0, 
       displayOutsideMaxExtent : true, 
       isBaseLayer : true, 

      }); 
    map.addLayer(tiled); 

    var tiled2 = new OpenLayers.Layer.WMS("test_osm2", 
      "http://localhost:8088/geoserver/osm/wms" 
      , { 
       LAYERS : "osm:highway-label", 
       transparent: true, 
       STYLES : '', 
       format : "image/svg+xml", 
       tiled : true, 
       transparent : true, 
      }, { 
       buffer : 0, 
       displayOutsideMaxExtent : true, 
       isBaseLayer : false, 
      }); 
    map.addLayer(tiled2); 
    map.zoomToMaxExtent(); 
} 

上記の私はマップを取得する私のコードですが、私は次のステップのためのアイデアを持っていない...

+1

を説明し、あなたがこれを行うにはしたくない理由いくつかのコード –

+0

を投稿してください? http://docs.geoserver.org/latest/ja/user/services/wms/vendor.html#angleが役立ちますか? –

+0

マップを180度回転させると、水平な道路名が逆さまになります。普通の読書習慣に従って道路名を付けたいと思います。 –

答えて

0

私はまた、設定されたテキストスタイルのためのaccordingLineStringのような方法を見つけることを試みてきました。唯一の方法私が見つけた、ストリートのためにあなたのrotationを計算し、テキストのスタイル設定:

text: new ol.style.Text({ rotation: 0.3 //your styles })

look this question

+0

まずはご協力いただきありがとうございます! –

+0

その質問では、jsのハイウェイラベル(道路名レイヤーの名前)のGeoServerにスタイルのようなスタイルを定義し、ローテーションを追加する必要があるようです。 –

+0

はい、フィーチャーのスタイルを定義する必要があります。 Googleの例やhttp://openlayers.org/をご覧ください – Nurlan

0

をあなたのラベルはレンダリングされたサーバー側なので、あなたがOpenLayersをを使用してクライアント側を(できることは何もありません)を使用して、ラベルのレンダリング方法を変更します。

osm:highway-labelレイヤーで使用するスタイル(SLD)を編集する必要があります。あなたがここに http://docs.geoserver.org/latest/en/user/styling/sld-cookbook/lines.html

を良い例を見つけることができますが、私はあなたがラベルのローテーションの設定を探していると思う

は、ここに http://docs.geoserver.org/latest/en/user/styling/sld-reference/labeling.html#rotation

関連する問題