OpenLayers の Development Examples の「Editing Toolbar Example(http://openlayers.org/dev/examples/editingtoolbar.html)」と OpenLayers の
「Control」ページ
http://docs.openlayers.org/library/controls.html
の「Customizing an Existing Panel」を参考に Editing Toolbar に選択ボタンを追加してみます。
---
map = new OpenLayers.Map('map', { projection: new OpenLayers.Projection("EPSG:2451"), displayProjection: new OpenLayers.Projection("EPSG:4326"), maxResolution: 'auto', units: 'meters', maxExtent: new OpenLayers.Bounds(-63100,-34500,-45400,-24200),
controls: [ new OpenLayers.Control.PanZoom(), // new OpenLayers.Control.EditingToolbar(vectors ), 削除 new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.MousePosition() ] });
map.addLayers([layer0, layer3, layer1, layer2, layer4, vectors]);
// ここから追加 var panel = new OpenLayers.Control.Panel({ displayClass: 'customEditingToolbar', allowDepress: true // "OpenLayers.Control.TYPE_TOOL" が "true" のとき "on" のアイコンをクリックすると "off" になる });
// ボタンを1つずつ設定しないと配置がうまくできませんでした
panelCrontrol = [ new OpenLayers.Control.Navigation( { title: "Navigation" // ポインタをボタンに重ねたときには浮き出して表示 }), ),
new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Point, { multi: true, // レイヤに渡す前に feature をマルチタイプジオメトリに型変換 displayClass: 'olControlDrawFeaturePoint' // アイコンの設定 }),
new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Path, { multi: true, displayClass: 'olControlDrawFeaturePath' }),
new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Polygon, { multi: true, displayClass: 'olControlDrawFeaturePolygon' }),
new OpenLayers.Control.SelectFeature( vectors, { clickout: false, toggle: false, multiple: false, hover: false, toggleKey: "ctrlKey", // ctrl key removes from selection multipleKey: "shiftKey", // shift key adds to selection box: true, displayClass: 'olControlSelectFeature' }) ];
panel.addControls(panelControl); map.addControl(panel); // ここまで map.zoomToMaxExtent(); } </script> </head>---
「displayClass」は、style を設定してアイコンを指定します。内容は "OpenLayers-2.13.1/theme/default/style.css" をコピーしました。
選択ボタンは次のようなものを作成して、"OpenLayers-2.13.1/theme/default/img/ に保存しました。
select_feature_on.png
select_feature_off.png
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <link rel="stylesheet" href="OpenLayers-2.13.1/theme/default/style.css" type="text/css"> <link rel="stylesheet" href="OpenLayers-2.13.1/examples/style.css" type="text/css">
<!-- ここから追加 --> <style> .customEditingToolbar { float: right; right: 0px; height: 30px; } .customEditingToolbar div { float: right; margin: 5px; width: 24px; height: 24px; }
.olControlNavigationItemActive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -103px -23px; } .olControlNavigationItemInactive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -103px -0px; }
.olControlDrawFeaturePointItemInactive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -77px -1px; } .olControlDrawFeaturePointItemActive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -77px -24px; }
.olControlDrawFeaturePathItemInactive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -51px -1px; } .olControlDrawFeaturePathItemActive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -51px -24px; }
.olControlDrawFeaturePolygonItemInactive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -26px 0px; } .olControlDrawFeaturePolygonItemActive { background-image: url("OpenLayers-2.13.1/theme/default/img/editing_tool_bar.png"); background-repeat: no-repeat; background-position: -26px -23px; }
.olControlSelectFeatureItemActive { background-image: url(OpenLayers-2.13.1/theme/default/img/select_feature_on.png); background-repeat: no-repeat; background-position: 0 1px; } .olControlSelectFeatureItemInactive { background-image: url(OpenLayers-2.13.1/theme/default/img/select_feature_off.png); background-repeat: no-repeat; background-position: 0 1px; }
</style> <!-- ここまで -->---
0 件のコメント:
コメントを投稿