[OSGeoJapan-discuss] [FYI] 電子国土 v3 for openlayers
松村一保
matsumura_kazuyasu @ osaka-kanmin.com
2012年 7月 13日 (金) 19:09:19 PDT
菊池さま みなさま
松村です。
openlayers4jgsi を見ていただいてありがとうございます。
電子国土Ver4 がでてきたら、openlayers4jgsi は不要と思っ
ています。国土地理院は、縦横のサイズが異なる背景地図の
配信をしなくなると思います。
大縮尺の画像をクライアント側で拡大するようなコードを作成
するかもしれませんが、OpenLayersのコード変更に左右される
ため、作るかどうか今のところわかりません。
国土地理院から提供されるサンプルソースを機能を分割して、
必要な機能を必要な人が、利用できるような環境の構築を共同
でできたら良いですね。
今後とも、情報共有、情報交換をお願いします。
【情報共有】
電子国土Ver4ラボサイトの背景データを表示するだけなら、
国土地理院のライブラリを利用しなくても、Openlayersだけで
表示することが可能です。
以下、サンプルです。(コピペして、一部削除しているので、コードが
まずいかもしれませんが・・)
tisLayer = new OpenLayers.Layer.XYZ(
"国土地理院 電子国土",
"http://cyberjapandata.gsi.go.jp/cgi-bin/get-tile.php?did=LABO&zl=${z}&tid=$
{x}${y}",
{
getXYZ: function(bounds) {
function getZeroPatString(value, len) {
var svalue = value.toString();
var slen = svalue.length;
var i;
var patLength = len - slen;
for (i = 0; i<patLength; i++) {
svalue = '0' + svalue;
}
return svalue;
}
var res = this.getServerResolution();
var x = Math.round((bounds.left - this.maxExtent.left) /
(res * this.tileSize.w));
var y = Math.round((this.maxExtent.top - bounds.top) /
(res * this.tileSize.h));
var z = this.getServerZoom();
if (this.wrapDateLine) {
var limit = Math.pow(2, z);
x = ((x % limit) + limit) % limit;
}
x = getZeroPatString(x, 7);
y = getZeroPatString(y, 7);
return {'x': x, 'y': y, 'z': z};
}
,sphericalMercator: true
,projection: new OpenLayers.Projection("EPSG:900913")
,displayProjection: new OpenLayers.Projection("EPSG:4326")
,units:'m'
,maxExtent: new OpenLayers.Bounds(-128 * 156543.03390625, -128 * 156543.
03390625,
128 * 156543.03390625, 128 * 156543.
03390625)
,format : "image/jpg"
,attribution:"国土地理院 電子国土 "
,transparent : true
,isBaseLayer : true
,displayInLayerSwitcher:false
,opacity : 1.0
// zoom levels 9 - 11
// ,minZoomLevel: 9 // minZoomLevel is not supported for XYZ layers,
// ,maxZoomLevel: 11
// ,numZoomLevels : 3
// ,zoomOffset: 9, resolutions: [305.74811309814453,152.87405654907226, 76.
43702827453613]
// zoom levels 8 - 21
// ,minZoomLevel: 8 // minZoomLevel is not supported for XYZ layers,
// ,maxZoomLevel: 21
// ,numZoomLevels : 14
,zoomOffset: 8, resolutions: [ 611.4962261962891,
305.74811309814453, 152.87405654907226, 76.43702827453613,
38.
218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508,
2.
388657133579254, 1.194328566789627, 0.5971642833948135,
0.29858214169740677,
0.
14929107084870338,0.07464553542435169]
});
map.addLayer(tisLayer);
国土地理院の電子国土Ver4ラボサイトでは、一部の地域と一部のズームスケールの
データが
提供されています。 (ズームスケール 9から11)
zoomOffset をコメントしている上段のコードを生きにしていただければ良いと思い
ます。
電子国土のLOGOは、このソースでは表示できません。
以上
> -----Original Message-----
> From: osgeojapan-discuss-bounces @ lists.osgeo.org
> [mailto:osgeojapan-discuss-bounces @ lists.osgeo.org] On Behalf Of
> kikuchan @ uranus.dti.ne.jp
> Sent: Thursday, July 12, 2012 11:59 PM
> To: osgeojapan-discuss @ lists.osgeo.org
> Subject: [OSGeoJapan-discuss] [FYI] 電子国土 v3 for openlayers
>
> はじめまして。菊池と申します。
>
> 先日、電子国土v4 のテストサイトが開設されましたが、
> 今更ながら従来の 電子国土v3 を OpenLayers で動かすことができたので、ご
> 報告です。
>
> 先行する openlayers4jgsi に比べて、以下の特徴があります。
>
> ・必要となるファイルは、1つだけです
> ・ドラッグ後、必要なタイルだけをロードします
> ・1pxの白線は出ません
> ・最新の OpenLayers-2.12 でも動きます (ちょっと古くても動きます)
>
>
> 当初、openlayers4jgsi を利用しようと思っていたのですが
> 自分の使用目的に合致しなかったので、改造しました。
>
> すぐに 電子国土 v4 によって不要になるとは思いますが、
> タイル画像のサイズが場所によって変化するケースでも
> OpenLayers が正しくタイルを扱うことができる一例になるかと思い、投稿しま
> す。
>
> もし他にも、タイルが位置によって可変となるサービスがあれば教えてくださ
> い。
>
> https://github.com/kikuchan/jgsi-v3-for-openlayers
>
> 以上、ご参考までに。
>
> --
> kikuchan
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
More information about the OSGeoJapan-discuss
mailing list