2010年6月9日水曜日

OpenLayers57f OpenStreetMap & GeoWebCache - OpenStreetMap の表示 6

GeoWebCache の設定

GeoServer GeoWebCache Configuration ページ
http://geoserver.org/display/GEOSDOC/GeoServer+GeoWebCache+Configuration

を参考に japan_highway レイヤの GeoWebCache 設定をします。
1 左側の欄の Services -> GWC をクリックします。
2 GeoWebCache ページ http://localhost:8080/geoserver/gwc の
「A list of all the layers and automatic demos」リンクをクリックします。
3 sde:japan_highway の OpenLayers の png をクリックします。

http://localhost:8080/geoserver/gwc/demo/sde:japan_highway?gridSet=EPSG:900913&format=image/png

何も表示されていないので、倍率を上げていきます。



キャッシュディレクトリは、/tmp/geowebcache になります。

user@debian:~$ ls /tmp/geowebcache/
meta_jdbc_h2 sde_japan_highway
user@debian:~$ ls /tmp/geowebcache/sde_japan_highway/
EPSG_900913_04 EPSG_900913_05

シード(資源化:キャッシュタイルの作成)方法
実際にレイヤをシードするために、レイヤのシードリンク「Seed this layer」をクリックします。

メインシードインターフェイス
Number of threads to use: 01(複数スレッドの実行の選択)
Type of operation: Reseed-regenerated all tiles(再シード すべてのタイル、損失タイル、削除タイル)
SRS: EPSG:4326(出力投影法)EPSG:900913
Format: image/png (画像フォーマット)
Zoom start: 00(最低倍率)
Zoom stop: 12(最高倍率)
Bounding box: 138.926, 35.468, 139.949, 35.941(東京都の範囲)
15518513, 4258113, 15579051, 4265113
「Submit」ボタンをクリックします。

次のスレッドが表示されます。



キャッシュが完成されるときは次のようになります。

06 3 19:34:55 WARN [geoserver.we] - GWCAdminPage does not have a title set
06 3 19:45:32 INFO [seed.SeedTask] - Thread 0 begins seeding layer : sde:japan_highway
06 3 19:45:36 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 0 for layer sde:japan_highway (ca. 1.51%)
06 3 19:45:37 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 1 for layer sde:japan_highway (ca. 3.53%)
06 3 19:45:39 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 2 for layer sde:japan_highway (ca. 4.53%)
06 3 19:45:40 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 3 for layer sde:japan_highway (ca. 5.4%)
06 3 19:45:50 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 4 for layer sde:japan_highway (ca. 8.6%)
06 3 19:45:58 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 5 for layer sde:japan_highway (ca. 8.82%)
06 3 19:46:08 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 6 for layer sde:japan_highway (ca. 10.33%)
06 3 19:46:17 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 7 for layer sde:japan_highway (ca. 12.34%)
06 3 19:46:23 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 8 for layer sde:japan_highway (ca. 16.37%)
06 3 19:46:41 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 9 for layer sde:japan_highway (ca. 17.63%)
06 3 19:47:16 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 10 for layer sde:japan_highway (ca. 37.3%)
06 3 19:48:46 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 11 for layer sde:japan_highway (ca. 78.59%)
06 3 19:51:31 INFO [seed.SeedTask] - Thread 0 completed (re)seeding level 12 for layer sde:japan_highway (ca. 145.9%)
06 3 19:51:31 INFO [seed.SeedTask] - Thread 0 was terminated after 576 tiles

余計なキャッシュが作成されているようでしたら、スレッド右側にある「Kill Thread」ボタンをクリックしてください。



コードの解説ちょっとします。
投影法が EPSG:2456 の基盤地図情報の東京都の地図をベースマップにすると、投影法をEPSG:4326 で作成した OSM のキャッシュレイヤが表示できませんでした。
ベースマップを国土数値情報の東京都の地図をベースマップにします。

---
<script type="text/javascript">
var map, layer1, layer2, osm;
var lon = 139.4;
var lat = 35.7;
var zoom = 10;

function init() {
map = new OpenLayers.Map('map');

layer1 = new OpenLayers.Layer.WMS( "Tokyo gyoseikai WMS",
"http://192.168.1.6/cgi-bin/mapserv?",
{
map: '/home/user/mapfile/tokyo_pf_pgis.map',
layers: 'gyoseikai',
isBaselayer: true,
format: 'image/png'
});

osm = new OpenLayers.Layer.WMS( "OSM Layer",
"http://localhost:8080/geoserver/gwc/service/wms",
// "http://localhost:8080/geoserver/wms",
{
layers: 'sde:japan_highway',
transparent: true,
format: 'image/png'
});

map.addLayers([layer1, osm]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.ScaleLine());
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}
</script>
---



キャッシュを使ったレイヤは、キャッシュを使用しないときより半分の時間で表示できました。
キャッシュの効果がないようでしたら、倍率を上げてキャッシュを作成します。
Zoom start、Zoom stop を両方13にすると、タイル数 1056、時間3分で作成されました。

user@debian:~$ ls /tmp/geowebcache/sde_japan_highway/
EPSG_4326_00 EPSG_4326_03 EPSG_4326_06 EPSG_4326_09 EPSG_4326_12
EPSG_4326_01 EPSG_4326_04 EPSG_4326_07 EPSG_4326_10 EPSG_4326_13
EPSG_4326_02 EPSG_4326_05 EPSG_4326_08 EPSG_4326_11

タイル数が多いと(メモリに関する)エラーが発生するので注意してください。
キャッシュは、Debian を終了すると消去されてしまいます。

0 件のコメント: