「OpenLayers」を利用して、位置図を作成する

地図からではなく、属性データから位置図を作成しようと思い、「OpenLayers」を利用して実装してみました。

処理の概要は以下の通りです。

  • 属性のプライマリーキーより、図形データ(GeoJson形式)のデータを取得
  • 取得した図形データ(GeoJson形式)から、中心点を取得して、表示領域に設定

各処理とファイルは以下の通りです。

  • 図形取得用APIコントローラー…ReportController.cs
  • クライアント…map.js

以下、実装例です。必要な個所のみに抜粋しています。

ReportController.cs

前回は、GetFeatures()という全図形を返却するメソッドを作成しましたが、
今回は1件しか表示させないので、引数付きのGetFeature()メソッドを作成しました。

今回も、GeoJson形式で作成するため、空間演算ライブラリのNetTopologySuiteにある、GeoJsonWriterを利用しています。
また、前回は複数件の返却であったため、FeatureCollectionクラスでGeoJsonを作成していましたが、今回は1件なので、FeatureクラスでGeoJsonを作成しています。

map.js

図形レイヤから、引数付きの図形取得用APIコントローラーを呼びます。図形取得した後、中心点を取得して、表示領域に設定しています。
表示領域に設定は、以前は、ol.View.centerOn()メソッドを使っていましたが、今回は、ol.View.fit()メソッドを使いました。fit()の方が、引数の設定が分かりやすいため、使い易いです。

以下、表示イメージです。ピンが地図の中心に表示されています。

Print Friendly, PDF & Email

シェアする

  • このエントリーをはてなブックマークに追加

フォローする