[OSGeoJapan-discuss] MapServerとOpenLayersのWMSの初期化時の拡大図

奈良崎 優 mnarazaki @ mpcnet.co.jp
2012年 5月 23日 (水) 16:48:07 PDT


皆様
OSGeo4WのMapServerの例題をverion=6.0で色々変更してWeb-GISの勉強しています。
例題14は、東京のMapServerとOpenLayersのWMSの例題です。
初期化時に、東京スカイツリーのある押上1丁目付近の拡大図を表示させ、次第に表示エリアを拡張したいと思い、
mapファイルのEXTENTの値を次のとおり変更しました。
(この値は、QGISで読みました。)
    min        max           min            max    
(139.72520,35.67139),(139.78845,35.7073)−>(139.7944,35.68858),(139.84025,35.72974) 
しかし、何の変化もありません。
OpenLayersのzoomToExtentで制御するのでしょうか?
もしそうなら、わかりやすい例題を紹介していただけないでしょうか?
(APIの説明だけだと初心者にはわかりづらいのでexampleがついたものがいいです。)
以下に、使用したMapファイルとOpenlayersのhtmlファイルを示します。
(ほぼ、OSGeo4Wの例題14と同じで、相違点は、v=6.0にしたためです。)
よろしくお願いします。
       奈良崎
1.Mapファイル
MAP
  NAME        "mapserver_tutorial_wms_server"
  IMAGETYPE   PNG
  EXTENT      139.7944 35.68858 139.84025 35.72974       
  #EXTENT      139.72520 35.67139 139.78845 35.7073
  SIZE        550 450

  IMAGECOLOR  255 255 255
  SHAPEPATH   "../data"

  FONTSET     ../fonts/fonts.txt

  UNITS dd

  WEB	
    TEMPLATE  'example_template.html'
    IMAGEPATH "C:\MS4W/tmp/ms_tmp/"
    IMAGEURL "/ms_tmp/"
    #MINSCALEDENOM  100
    MINSCALEDENOM  1000
    #MAXSCALEDENOM  70000
    MAXSCALEDENOM  700000
    METADATA
      "wms_title"          "MapServer Tutorial WMS Server"
      "wms_onlineresource" "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=C:\MS4W/apps/mapserver-tutorial/example12/example_initpos.map"
      "wms_srs"            "EPSG:4301 EPSG:4269 EPSG:4326"
      "wms_abstract"      "This demonstration server shows how to setup a MapServer .map file to serve data through the WMS standard."
      wms_enable_request "*"
    END    
    #"wms_enable_request" "*"
  END
 
  PROJECTION
    "init=epsg:4301"
  END  

  LAYER 
    NAME "roads"
    METADATA
     "wms_title"    "Roads"
    END  
    DATA dourokukan
    STATUS ON
    TYPE LINE
    MAXSCALEDENOM 50000
    CLASS
      NAME "roads"
      STYLE
        COLOR 187 187 127
      END
    END
    PROJECTION
      "init=epsg:4301"
    END      
  END 

  LAYER 
    NAME "administrative"
    METADATA
     "wms_title"    "Administrative"
    END     
    DATA gyouseikai
    STATUS ON
    TYPE LINE
    CLASS
      NAME "Administrative"
      STYLE
        COLOR 227 127 227
      END
    END
    PROJECTION
      "init=epsg:4301"
    END    
  END 

  LAYER 
    NAME "rail"
    METADATA
     "wms_title"    "Rail"
    END     
    DATA tetsudokukan
    STATUS ON
    TYPE LINE
    CLASS
      NAME "Rail"
      STYLE
        COLOR 128 128 128
      END
    END
    PROJECTION
      "init=epsg:4301"
    END    
  END 

  LAYER 
    NAME "rivers"
    METADATA
     "wms_title"    "Rivers"
    END     
    DATA kasenkukan
    STATUS ON
    TYPE LINE
    CLASS
      NAME "Rivers"
      STYLE
        COLOR 0 255 255
      END
    END
    PROJECTION
      "init=epsg:4301"
    END    
  END 

  LAYER 
    NAME "water"
    METADATA
     "wms_title"    "Water"
    END     
    DATA suiikikai
    STATUS ON
    TYPE LINE
    CLASS
      NAME "Water"
      STYLE
        COLOR 0 0 255
      END
    END
    PROJECTION
      "init=epsg:4301"
    END    
  END 

  LAYER 
    NAME "places"
    METADATA
     "wms_title"    "Place name"
    END     
    DATA chimei 
    STATUS ON
    TYPE POINT
    LABELITEM "NAMAE"
    CLASS
      NAME "Places"
      STYLE
        COLOR 10 100 100
      END
      LABEL
        TYPE TRUETYPE
        FONT pgothic
        COLOR 220 20 20
        SIZE 7
        POSITION CL
        PARTIALS FALSE
        BUFFER 5
        ENCODING "SHIFT_JIS"                              
      END
    END
    PROJECTION
      "init=epsg:4301"
    END    
  END 

END 

2.Openlayersのhtmlファイル
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <link rel="stylesheet" href="style.css" type="text/css" />
    <style type="text/css">
        #map {
         width: 800px;
            height: 500px;
            border: 1px solid black;
        }
    </style>
    <script src="OpenLayers.js"></script>
    <script type="text/javascript">
        var lon = 139.7245;
        var lat = 35.6816;
        var zoom = 11;
        var map, layer;

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

            localWMS = new OpenLayers.Layer.WMS( "Local WMS layers",
			          "http://127.0.0.1/cgi-bin/mapserv.exe?MAP=C:/MS4W/apps/mapserver-tutorial/example12/example_initpos.map",
			          {layers: 'mapserver_tutorial_wms_server', transparent: true}, {isBaseLayer: true} );
            map.addLayer(localWMS);

            map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
            map.addControl( new OpenLayers.Control.LayerSwitcher() );
        }
    </script>
  </head>
  <body onload="init()">
    <h1 id="title">OpenLayers Example</h1>

    <div id="tags">
    </div>
    <p id="shortdesc">
        Shows the basic use of OpenLayers with our local WMS layers and a GeoGrid WMS layer.
    </p>

    <div id="map" class="smallmap"></div>

    <div id="docs">
        OpenLayers is a JavaScript file (OpenLayers.js) that can be easily included in any HTML file.<br>Click on the source
        below to see the few lines required to add these 2 WMS servers into the map.<br>
          <br>
          <hr noshade width="40%" size="1" align="left">
          <a href="/mapserver-tutorial/example14/openlayers_source.html">- (source) -</a>&nbsp;&nbsp;
          <a href="/mapserver-tutorial/index.html">- (back) -</a>
    </div>
  </body>
</html>

********************************************************************************
  〒247-8505
  鎌倉市上町屋345番地
  三菱プレシジョン株式会社
  生産管理部
  奈良崎 優 Narazaki Masaru
  Tel 0467-42-5547 
  e-mail:mnarazaki @ mpcnet.co.jp
********************************************************************************



More information about the OSGeoJapan-discuss mailing list