OpenLayers Styling ページ
http://docs.openlayers.org/library/feature_styling.html
の「Custom Rules」の項目に、
ある値に対する大小や文字列の照合を基本にした応用スタイルルールを作成できる、とあります。
LESS_THAN、GREATER_THAN、EQUAL_TO を使用したフィルタの例を参考に、「ol006-nippon_bmi_akiruno_pgis.html」のコードを編集します。
a メニューの「ファイル」->「開く」をクリックします。b 「ファイルを開く」ウィンドウで、「OpenLayers-2.13.1」->「ol006-nippon_bmi_akiruno_pgis.html」をクリックして選択し、「OK」ボタンをクリックします。
c メニューの「ファイル」->「新規」 -> 「その他」をクリックします。
d 「ウィザードを選択」ウィンドウで、「Web」(複数あるときは展開して探してください。)->「HTMLファイル」をクリックして選択し、「次へ」ボタンをクリックします。
e 「HTML」ウィンドウで「openlayersTokyoproj」をクリックして選択し、「ファイル名」を「ol007-nippon_bmi_akiruno_pgis.html」と入力し、「完了」ボタンをクリックします。
f 「ol006-nippon_bmi_akiruno_pgis.html」の内容をコピーして「ol007-nippon_bmi_akiruno_pgis.html」ファイルに貼り付けます。
g javascript の一部を次のように修正します。
---
/*
var style_publicFacilities = new OpenLayers.Style({
fillColor: '#ff9999',
fillOpacity: '0.5',
strokeColor: '#ff3333',
pointRadius: 6
});
*/
var style_publicFacilities = new OpenLayers.Style();
var style_lightgreen = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 3
}),
symbolizer: {
fillColor: "#99ff99",
fillOpacity: 0.5,
strokeColor: "#33ff33",
pointRadius: 6
}
});
var style_lightblue = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 11,
}),
symbolizer: {
fillColor: "#9999ff",
fillOpacity: 0.5,
strokeColor: "#3333ff",
pointRadius: 6
}
var style_lightred = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 12,
}),
symbolizer: {
fillColor: "#ff9999",
fillOpacity: 0.5,
strokeColor: "#ff3333",
pointRadius: 6
}
});
var style_lightyellow = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 13,
}),
symbolizer: {
fillColor: "#ffff99",
fillOpacity: 0.5,
strokeColor: "#ffff33",
pointRadius: 6
}
});
var style_lightsyan = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 14,
}),
symbolizer: {
fillColor: "#99ffff",
fillOpacity: 0.5,
strokeColor: "#33ffff",
pointRadius: 6
}
});
var style_lightmagenta = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 15,
}),
symbolizer: {
fillColor: "#ff99ff",
fillOpacity: 0.5,
strokeColor: "#ff33ff",
pointRadius: 6
}
});
var style_green = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 16,
}),
symbolizer: {
fillColor: "#33ff33",
fillOpacity: 0.5,
strokeColor: "#00ff00",
pointRadius: 6
}
});
var style_orange = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 17,
}),
symbolizer: {
fillColor: "#ff9933",
fillOpacity: 0.5,
strokeColor: "#ff6600",
pointRadius: 6
}
});
var style_red = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 18,
}),
symbolizer: {
fillColor: "#ff0000",
fillOpacity: 0.5,
strokeColor: "#ff0000",
pointRadius: 6
}
});
var style_yellow = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 19,
}),
symbolizer: {
fillColor: "#ffff00",
fillOpacity: 0.5,
strokeColor: "#ff9933",
pointRadius: 6
}
});
var style_grey = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 9,
}),
symbolizer: {
fillColor: "#999999",
fillOpacity: 0.5,
strokeColor: "#999999",
pointRadius: 6
}
});
style_publicFacilities.addRules([style_lightgreen, style_lightblue, style_lightred, style_lightyellow, style_lightsyan, style_lightmagenta, style_green, style_orange, style_red, style_yellow, style_grey]);
layer4 = new OpenLayers.Layer.Vector( "Tokyo Public Facilities Features",{
---
表示しない倍率で表示させてみました。
コードを次のようにもかけます。
Boundless
Introduction to OpenLayers
4.4. Understanding Style
http://workshops.boundlessgeo.com/openlayers-intro/vector/style-intro.html
より
---
var style_publicFacilities = new OpenLayers.Style({
// "rules:" 以下のルールに当てはまらないとき(「その他」のスタイル grey)
fillColor: '#999999',
fillOpacity: '0.5',
strokeColor: '#999999',
pointRadius: 6
},{
rules: [
// var style_lightgreen = new OpenLayers.Rule({
// 各スタイルでここを削除
new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 3
}),
symbolizer: {
fillColor: "#99ff99",
fillOpacity: 0.5,
strokeColor: "#33ff33",
pointRadius: 6
}
}),
// var style_lightblue = new OpenLayers.Rule({
new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 11,
}),
---
/* スタイル grey (「その他」)のルールは削除
var style_grey = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "p02_002",
value: 9,
}),
symbolizer: {
fillColor: "#999999",
fillOpacity: 0.5,
strokeColor: "#999999",
pointRadius: 6
}
}),
style_publicFacilities.addRules([style_lightgreen,
style_lightblue, style_lightred, style_lightyellow,
style_lightsyan, style_lightmagenta, style_green,
style_orange, style_red, style_yellow, style_grey]);
*/
new OpenLayers.Rule({elsefilter: true})
]
});
layer4 = new OpenLayers.Layer.Vector( "Tokyo Public Facilities Features",{
---






0 件のコメント:
コメントを投稿