[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