チュートリアル12
提供: svg2wiki
(版間での差分)
(→image要素のプロパティ) |
(→image要素のプロパティ) |
||
37行: | 37行: | ||
<code><globalCoordinateSystem srsName="http://purl.org/crs/84" transform="matrix(1,0,0,-1,0,0)" /></code> | <code><globalCoordinateSystem srsName="http://purl.org/crs/84" transform="matrix(1,0,0,-1,0,0)" /></code> | ||
から、SVG座標(Xsvg, Ysvg)と地理座標(WGS84系:Xgeo(経度), Ygeo(緯度))との関係式は以下であることがわかります。 | から、SVG座標(Xsvg, Ysvg)と地理座標(WGS84系:Xgeo(経度), Ygeo(緯度))との関係式は以下であることがわかります。 | ||
− | Xsvg = 1 * Xgeo + 0 * Ygeo + 0 | + | Xsvg = 1 * Xgeo + 0 * Ygeo + 0 ⇒ Xsvg = Xgeo |
− | Ysvg = 0 * Xgeo - 1 * Ygeo + 0 | + | Ysvg = 0 * Xgeo - 1 * Ygeo + 0 ⇒ Ysvg = -Ygeo |
− | + | ||
*<code>xlink:href="[WMSクエリパラメータが設定されたGEVBCO WMSのURL]"</code> | *<code>xlink:href="[WMSクエリパラメータが設定されたGEVBCO WMSのURL]"</code> |
2022年2月17日 (木) 04:05時点における版
目次 |
チュートリアル12 WMSの利用
指定した領域の地図データを動的に生成する仕様WMS(Web Map Service)に基づいて地図データを配信するGEBCO Web Serviceと接続し、地図データを表示する最も基本的な方法を説明します。
クライアント側では特にjavascript等による動的なコードの実装なしに、単に静的なビットイメージを表示するだけのものです。したがってチュートリアル4との違いはほぼありません。
- 実際の動作は、こちらをクリック。
- ソースコードのディレクトリ
wms1.html
これまでと特に変わったところはありません。
Container.svg
これまでと特に変わったところはありません。
wms_static.svg
image要素を使って、ビットイメージをSVGMapコンテンツに配置しているのはチュートリアル4と同じです。
チュートリアル4では画像の領域情報とimage要素のパラメータの関係の説明が簡素でしたが、こちらではWMSのクエリパラメータとの関係を合わせ詳細に説明します。
WMSのクエリパラメータ
WMSの詳細は仕様書を参照してください。ここでは要点を述べます。
- 決め打ちパラメータ 以下は地図のビットイメージを取得する際に基本的に常時変わらないパラメータです。
request=GetMap
service=WMS
version=1.1.1
format=image/png
データ形式はPNGが概ね常時適します。(ロスレス・透明ピクセル(データの無い場所など))
layers=GEBCO_LATEST
GEBCO WMSにどのようなレイヤーがあるかは、GEBCOのgetcapabilitiesで確認できます。srs=EPSG:4326
空間参照系(地理座標系と図法を一体にした概念)をEPSG:4326(WGS84座標系)に指定しています。- WGS84座標系(X:経度,Y:緯度の世界測地系)のデータを、その座標系にリニアな平面(すなわち正距円筒図法)に図化します。
bbox=120,20,150,50
上で指定した座標系(経度緯度座標)で図化する領域を指定- X1, Y1, X2, Y2の並びで指定します。(対角2点の座標) 注:X,Y,Width,Heightではない
- 経度120°,緯度20° と150°,50°の対角線領域のデータをリクエストしています。
width=600&height=600
図化するビットイメージのサイズ- 600 x 600 pxのサイズのPNG画像をリクエストしています。
- WMSではアスペクト比は維持されず、bboxで指定した領域が指定したサイズにきっちり収まるように出力されるアスペクト比を変化させたビットイメージが出力されます。
image要素のプロパティ
globalCoordinateSystem要素の記述
<globalCoordinateSystem srsName="http://purl.org/crs/84" transform="matrix(1,0,0,-1,0,0)" />
から、SVG座標(Xsvg, Ysvg)と地理座標(WGS84系:Xgeo(経度), Ygeo(緯度))との関係式は以下であることがわかります。
Xsvg = 1 * Xgeo + 0 * Ygeo + 0 ⇒ Xsvg = Xgeo Ysvg = 0 * Xgeo - 1 * Ygeo + 0 ⇒ Ysvg = -Ygeo
xlink:href="[WMSクエリパラメータが設定されたGEVBCO WMSのURL]"
x="120"
y="-50"
width="30"
height="30"
preserveAspectRatio="none"
WMSのビットイメージ生成ポリシーに準じて、ビットイメージ配置時にアスペクトを維持しない。title="image"
opacity="0.5"
透明度を50%に設定して背景地図を少し見えるようにしている。
ソース
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="120,-50,30,30"> <globalCoordinateSystem srsName="http://purl.org/crs/84" transform="matrix(1,0,0,-1,0,0)"/> <image xlink:href="https://www.gebco.net/data_and_products/gebco_web_services/web_map_service/mapserv? request=GetMap& service=WMS& version=1.1.1& layers=GEBCO_LATEST& srs=EPSG%3A4326& bbox=120,20,150,50& width=600& height=600& format=image%2Fpng" x="120" y="-50" width="30" height="30" preserveAspectRatio="none" title="image" opacity="0.5" /> </svg>