b 「npn:roads」の「OpenLayers」リンクをクリックします。
c 「wms を開く」ダイアログで「ファイルを保存する」を選択しボタンをクリックします。
wms の内容は次のようになっています。
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" > <ServiceException>
The requested Style can not be used with this layer. The style specifies an attribute of aeroway and the layer is: npn:roads
</ServiceException></ServiceExceptionReport>
osm_roads スタイルの Runway のデータを削除します。
(下記の方法で時間がかかる場合は、osm_roads.sld ファイルを修正してアップロードしてください。)
c 左側の欄の Data -> Styles をクリックします。
d osm_roads をクリックします。
e <!-- Runways from openstreetmap --> から
<-- end of zoom level b --> までを削除します。
(「roads」の「Default Style」が「osm_roads」であることを確認します。)
f 左側の欄の「Layer Preview」をクリックします。
g 「npn:roads」の「OpenLayers」リンクをクリックします。
「wms を開く」ダイアログで「ファイルを保存する」を選択しボタンをクリックします。
wms の内容は次のようになっています。
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" > <ServiceException>
The requested Style can not be used with this layer. The style specifies an attribute of highway and the layer is: npn:roads
</ServiceException></ServiceExceptionReport>
osm_roads.sld ファイルのすべての
<NamedLayer> の <Name> を npn:roads にします。<-1
<Rule> の <Name> を npn:roads にします。これは表示に影響はない(?)と思います。<-2
<ogc:Filter> の <ogc:PropertyName> を type にします。<-3
---
<NamedLayer>
<Name>npn:roads</Name> <-1
<UserStyle>
<Title>A boring default style</Title>
<Abstract>A sample style that just prints out a green line</Abstract>
<!-- start of zoom level 3 -->
<FeatureTypeStyle>
<Rule>
<Name>npn:roads</Name> <-2
<Title>freeways- outer zoom level</Title>
<Abstract>freeways style openstreetmap data</Abstract>
<ogc:Filter>
<ogc:Or>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>type</ogc:PropertyName> <-3
<ogc:Literal>residential</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>type</ogc:PropertyName> <-3
<ogc:Literal>unclassified</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:Filter>
<MinScaleDenominator>1000</MinScaleDenominator>
<MaxScaleDenominator>4000</MaxScaleDenominator>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#f4faf6</CssParameter>
<CssParameter name="stroke-width">12</CssParameter>
<CssParameter name="stroke-linejoin">round</CssParameter>
</Stroke>
</LineSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>name</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-size">10</CssParameter>
<CssParameter name="font-family">Arial</CssParameter>
<CssParameter name="font-color">#eeeeee</CssParameter>
</Font>
<LabelPlacement>
<LinePlacement>
<PerpendicularOffset>
0
</PerpendicularOffset>
</LinePlacement>
</LabelPlacement>
<Halo>
<Radius>
<ogc:Literal>1</ogc:Literal>
</Radius>
<Fill>
<CssParameter name="fill">#f4faf6</CssParameter>
</Fill>
</Halo>
<Fill>
<CssParameter name="fill">#808080</CssParameter>
</Fill>
<VendorOption name="maxDisplacement">50</VendorOption>
<VendorOption name="labelAllGroup">true</VendorOption>
<VendorOption name="removeOverlaps">true</VendorOption>
<VendorOption name="followLine">true</VendorOption>
<VendorOption name="group">true</VendorOption>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
---
roads の type の内容は次の通りです。
user@debian7-vmw:~$ psql osm
psql (9.1.9)
"help" でヘルプを表示します.
osm=> \dt
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+------------------+----------+-------- public | geometry_columns | テーブル | user public | roads | テーブル | user public | spatial_ref_sys | テーブル | user (3 行)
osm=> SELECT DISTINCT type FROM roads;
type
------------------
_unclassified
<pedestrian>
abandoned
bridleway
bus_guideway
bus_stop
byway
construction
constructions
corridor
crossing
cy[
cycleway
destroyed
disused
elevator
emergency_access
escalator
escape
ferry
footpath
footway
fre
ire
living_street
mini_roundabout
minor
motorway
motorway_link
old_trunk
path
payh
pedestrian
platform
primary
primary_link
proposed
raceway
residential
residential;seco
residential;unc
residential;uncl
rest_area
road
secondary
secondary_link
service
service;road
services
slope
steps
tertiary
tertiary_link
track
traffic_signals
trunk
trunk_link
turning_loop
unclassified
unclassified;re
unclassified;res
undefined
unsurfaced
yellow_line
yes
(END):q
このうち、osm_roads.sld に設定されているものは次の通りです。
residential
unclassified
primary
secondary
tertiary
motorway
trunk
倍率によって、表示できる道路、線の太さ、色が変わるように設定されています。
「Layer Preview」をクリックして「npn:roads」の「OpenLayers」リンクをクリックしてください。
最初の倍率では何も表示されません。
拡大すると表示されるようになります。
(メモリ3個目。表示に時間がかかりました。)
Throw GeoServer a curve (and it will be labeled)
http://blog.geoserver.org/2009/01/08/throw-geoserver-a-curve/
に説明があります。
これによってラベルが道路に沿って表示されます。
0 件のコメント:
コメントを投稿