ニペソツ山
Date/Time: 2014:09:26 08:30:21
Camera: PENTAX
Model: PENTAX K-5 II s
Exporsure Time: 1/500 [s]
FNumber: 5.6
Aperture Value: 5.0
Focal Length: 21.0 [mm]

y2blog » OpenLayers上のZoomify レイヤー

6

07

2012

OpenLayers上のZoomify レイヤー

OpenLayers上でZoomifyイメージを表示する


OpenLayersのZoomifyレイヤーを用いて 『山っぷ』地図を表示 [© Digital Earth Technology Corp.]


以前、OpenLayersを用いてGoogle Mapsや電子国土基本図(地図)データなどを表示する方法について簡単に紹介しましたが、OpenLayersのサンプルページを見ていたら、OpenLayersにZoomifyイメージを扱うクラスがあるのを見つけました. 
http://openlayers.org/dev/examples/zoomify.html
この Zoomify Layer を用いると、大きなサイズのラスターイメージベースの地図やオルソ画像を簡単にOpenLayers上に表示できるようになりますね.


Zoomifyイメージと聞いても大部分の人は何のことか分からないと思いますが、大きなサイズの画像データを細かな矩形タイル状に分割して、数段階のズーム比率で画像を表示させる画像表示方式です.


Zoomifyイメージを作成するには、Photoshop等のZoomify Exportプラグインを使用するか、GPLベースの “ZoomifyImage SourceForge Project” のツールを用いて作成することができます.
 PhotoshopでZoomifyイメージを作成している様子は、以前の記事『iPhoneでGPSナビ #11: 可変長タイル画像表示(その1)』を参照下さい.


サンプルHTMLコード



    
    Zoomify Layer Test

#map {
    width: 600px;
    height:400px; 
    border: 1px solid #888;
}

  



  
    var zoomify_width  = 5328;
    var zoomify_height = 3552;
 
    var zoomify_url = "https://y2tech.net/maps/ZoomifyTest/533911_img/";
 
    var map, zoomify;
 
    function  init() {
  
        /* First we initialize the zoomify pyramid (to get number of tiers) */
        var zoomify = new OpenLayers.Layer.Zoomify( "Zoomify", zoomify_url, 
		      new OpenLayers.Size( zoomify_width, zoomify_height ) );
 
        /* Map with raster coordinates (pixels) from Zoomify image */
        var options = {
            maxExtent: new OpenLayers.Bounds( 0, 0, zoomify_width, zoomify_height ),
                       maxResolution: Math.pow( 2, zoomify.numberOfTiers-1 ),
                       numZoomLevels: zoomify.numberOfTiers,
                       units: 'pixels'
        };
 
        map = new OpenLayers.Map( "map", options );
        map.addLayer( zoomify );
 
        map.setBaseLayer( zoomify );
        //map.zoomToMaxExtent();
        map.zoomTo(3);

        var mapCenterPosition = 
            new OpenLayers.Pixel( map.getCurrentSize().w / 2, 
<br>
<p>                            map.getCurrentSize().h / 2 );
  	 
        var crosshairsCursorCtrl = new OpenLayers.Control.Crosshairs( {
                                       imgUrl:  "./crosshairs.png",
                                       size: new OpenLayers.Size(32, 32),
                                       position: mapCenterPosition
                                   });
        map.addControl( crosshairsCursorCtrl ); 
 
    };
 

 


	


 

Calendar

March 2025
S M T W T F S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
  • Blogroll

  • Meta

    Loading...