2008年9月16日火曜日

OpenLayers 10a unitsがddとmeterのレイヤ

OpenLayers 10a units(計測単位) が dd と meter のレイヤを同じ地図に表示します。

OpenLayers 7 で units が meter のレイヤを表示しました。
OpenLayers.Map のオプションを

maxResolution: 'auto',
units: 'meters',
maxExtent: new OpenLayers.Bounds(-83624.557161,-96269.254733,-3366.679476,-36305.074927)

で地図を表示できるようになったので、units が dd(degree) のレイヤもこのオプションで表示できるようにします。

もう一度、神奈川県の基盤地図情報のデータを調べてみましょう。
AdmAreaのデータの概要をみてみます。

user@debian:~/mapdata$ ogrinfo -summary kanagawa AdmArea
INFO: Open of `kanagawa'
using driver `ESRI Shapefile' successful.

Layer name: AdmArea
Geometry: Polygon
Feature Count: 115
Extent: (-83624.557161, -96269.254733) - (-3366.679476, -36305.074927)
Layer SRS WKT:
PROJCS["JGD2000_Japan_Zone_9", <-1
GEOGCS["GCS_JGD_2000",
DATUM["Japanese_Geodetic_Datum_2000",
SPHEROID["GRS_1980",6378137.0,298.257222101]], <-2
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"], <-3
PARAMETER["False_Easting",0.0],
PARAMETER["False_Northing",0.0],
PARAMETER["Central_Meridian",139.833333333333], <-4
PARAMETER["Scale_Factor",0.9999],
PARAMETER["Latitude_Of_Origin",36], <-5
UNIT["Meter",1.0]]
ID: String (8.0)
UUID: String (24.0)
PRESENCE: Real (11.0)
FINISHED: Real (11.0)
ORGGILVL: String (8.0)
ORGMDID: String (8.0)
TYPE: String (8.0)
NAME: String (25.0)
CODE: Integer (8.0)


<-番号 はそれぞれ

1 座標系 JGD2000(新日本測地系)ゾーン9
2 楕円体 GRS_1980
3 図法 横メルカトール図法 (tmerc)
4 中央子午線 139.83... (lon_0)
5 原点緯度 36 (lat_0)

を表しています。
/usr/share/proj/epsg から、JGD2000 に関係するコードをみてみます。

user@debian:/usr/share/proj$ grep -A1 JGD2000 epsg
# JGD2000
<4612> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
--
...
# JGD2000 / Japan Plane Rectangular CS IX
<2451> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
...

上は、経緯度表示、下は、平面直角座標系の定義のIXです。
これから、基盤地図情報の神奈川県のEPSGコードは 2451になります。

0 件のコメント: