こんにちは!GIS導入支援コンサルタントのippuku_timeです。
「5分で分かるSuperMap iDesktopX製品・機能紹介シリーズ」、第22回です。前回は、3D空間ならではの高度な「3D空間解析」について学びました。今回は、そうして作成・分析した価値ある地理空間情報を、いかにして多くの人々と共有するか、というテーマ、「クラウド共有とWebマップ公開」について解説します。デスクトップで完結するだけでなく、Webを通じて世界へ発信しましょう!
【第22回】作成した地図を世界へ!iDesktopXによるWebマップ公開入門
1. なぜWebで地図を公開するのか?
デスクトップGISで作成した地図や分析結果は非常に強力ですが、その真価は多くの人々と共有されて初めて発揮されます。Webマップとして公開することで、以下のようなメリットが生まれます。
(1) アクセシビリティ: GISソフトウェアがインストールされていないPCや、スマートフォン、タブレットからでも、Webブラウザさえあれば誰でも地図にアクセスできます。
(2) 情報の一元化: 関係者全員が常に最新の同じ地図データを参照できるため、情報の齟齬がなくなり、迅速な意思決定が可能になります。
(3) システム連携: 公開した地図サービス(API)は、他のウェブサイトに埋め込んだり、業務システムと連携させたりと、活用の幅が大きく広がります。
図22-1 デスクトップで作成した地図を、クラウドを通じて様々なデバイスに配信するイメージ
2. 公開の心臓部「SuperMap iServer」
iDesktopXで作成した地図をWeb公開するための心臓部となるのが、SuperMapファミリーのGISサーバー製品「SuperMap iServer」です。iDesktopXが地図を「作成・編集」するためのプロフェッショナルなツールであるのに対し、iServerはその成果物を多くのユーザーに「配信・提供」するためのパワフルなサーバーです。iDesktopXには、このiServerへ簡単にデータを公開するための機能が組み込まれています。
図22-2 iDesktopXとiServerの連携フロー
3. iDesktopXからのワンクリック公開
iDesktopXの「オンライン」タブには、iServerへコンテンツを公開するための専用機能が用意されており、数クリックの簡単な操作で公開プロセスを完了できます。
(1) ワークスペースの公開
最も基本的な公開方法です。iDesktopXで作成したワークスペース(地図、データ、スタイル設定などをすべて含むプロジェクトファイル)を丸ごと公開します。
① 公開されるサービスの種類:
* RESTサービス: Webシステム連携で最も一般的に使われる形式のサービスです。地図画像や地理空間データを配信します。
* OGCサービス: WMS、WFSといった国際標準規格のサービスです。これにより、SuperMap製品以外のGISソフトウェア(QGISなど)からも、公開した地図を読み込むことが可能になります。
(2) 地図タイルの公開
第14回で解説した「地図タイル」は、Web地図のパフォーマンスを最大化するための鍵です。iDesktopXで生成した地図タイルキャッシュ(ローカルファイルまたはMongoDBに保存)を直接iServerに公開することで、非常に高速な地図配信サービスを構築できます。
4. 公開したサービスの活用
サービスが正常に公開されると、iDesktopXの出力ウィンドウにサービスごとのURLが表示されます。このURLを使えば、以下のような様々な活用が可能になります。
(1) Webアプリケーションでの利用: SuperMapが提供するWeb API(iClient)や、Leaflet、OpenLayersといったオープンソースのライブラリを使って、独自のWeb地図アプリケーションを構築できます。
(2) 他のGISソフトウェアでの利用: 公開したWMSやWFSサービスは、他の多くのデスクトップGISソフトウェアで読み込み可能な標準データソースとなります。
(3) iDesktopXでの再利用: 自分が公開したサービスに、iDesktopXからWebデータソースとして接続し、他のデータと重ね合わせてさらに分析を行う、といった使い方も可能です。
まとめ
今回は、iDesktopXとiServerがシームレスに連携することで実現する「クラウド共有とWebマップ公開」についてご紹介しました。デスクトップで作成・分析した高度な地理空間情報を、簡単な操作でWebサービスとして公開し、組織内外の多くの人々と共有する。この一連のワークフローは、地理空間情報の価値を最大化し、その活用を民主化するための強力な手段となります。
次回は、**第23回「他のGISからの乗り換えも安心!データ移行ツール」**です。他のGISソフトウェアで作成した既存のデータを、いかにしてスムーズにSuperMapプラットフォームに移行するか、そのための便利なツールについて解説します。お楽しみに!
付録:サンプルコード(Python)
iDesktopXのPython IDEを使い、iServerで公開されているREST地図サービスに接続し、レイヤー情報を取得するサンプルコードです。地図を公開した後の「利用」フェーズを体験できます。
Python
# -*- coding: utf-8 -*-
import requests # Webサービスにアクセスするために標準ライブラリ以外のrequestsが必要になる場合があります
import json
def connect_to_iserver_service():
"""
SuperMap iServerで公開されているRESTサービスに接続し、情報を取得するサンプル
"""
try:
# iServerのRESTサービスURLを指定
# 例:'World'ワークスペースを公開した場合
base_url = "http://localhost:8090/iserver/services/map-World/rest/maps/World"
print(f"iServerサービスに接続中: {base_url}")
# 1. 地図の基本情報を取得
# JSON形式で情報を要求
params = {'f': 'json'}
response = requests.get(base_url + ".json", params=params)
# ステータスコード200は成功を意味する
if response.status_code == 200:
map_info = response.json()
print("\n--- 地図情報 ---")
print(f"地図名: {map_info.get('name')}")
print(f"座標系: {map_info.get('prjCoordSys', {}).get('name')}")
print(f"表示範囲 (Bounds): {map_info.get('bounds')}")
else:
print(f"地図情報の取得に失敗しました。ステータスコード: {response.status_code}")
return
# 2. 地図に含まれるレイヤーの情報を取得
layers_url = base_url + "/layers.json"
response_layers = requests.get(layers_url, params=params)
if response_layers.status_code == 200:
layers_info = response_layers.json()
print("\n--- レイヤー情報 ---")
if layers_info:
for layer in layers_info:
print(f" - レイヤー名: {layer.get('name')}, タイプ: {layer.get('type')}, 可視性: {layer.get('visible')}")
else:
print("レイヤーが見つかりません。")
else:
print(f"レイヤー情報の取得に失敗しました。ステータスコード: {response_layers.status_code}")
except requests.exceptions.ConnectionError as e:
print(f"接続エラー: iServerサービスが起動しているか、URLが正しいか確認してください。")
print(e)
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
if __name__ == '__main__':
# このスクリプトを実行する前に、'requests'ライブラリをインストールしてください
# pip install requests
connect_to_iserver_service()
コメント
コメントを投稿