Geofield

ポイント、ライン、ポリゴン、マルチタイプジオメトリを含む地理データを保存・管理するための地理位置情報フィールドタイプを提供します。

geofield
68,149 sites
102
drupal.org

インストール

Drupal 11, 10, 9 v8.x-1.66
composer require 'drupal/geofield:8.x-1.66'

概要

Geofieldは、地理データの保存と管理を可能にするDrupalの包括的な地理空間フィールドモジュールです。Open Geospatial Consortium(OGC)で定義されているすべてのジオメトリタイプ(Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon)をサポートしています。

このモジュールは、地理データをWell Known Text(WKT)形式で保存し、効率的な空間クエリのために重心座標、バウンディングボックス値、geohashなどの計算済みメタデータも併せて保存します。データ入力用の複数の入力ウィジェット(WKTテキスト、緯度/経度、度-分-秒、バウンディングボックス)と、表示用の複数の出力フォーマッターを提供します。

Geofieldには、正確な距離計算のためのHaversine公式を使用した、近接ベースのフィルタリング、ソート、フィールド表示機能を備えた堅牢なViews統合が含まれています。デフォルトのWKTストレージやPostGISを使用したPostgreSQLなど、拡張された空間機能のための複数のデータベースバックエンドをサポートしています。

基盤モジュールとして、GeofieldはGeofield MapやLeafletなどのコンパニオンモジュールを通じたマッピングライブラリ、Geocoderモジュールを通じたジオコーディングサービス、Search API Locationを通じた検索機能とシームレスに統合されます。

Features

  • すべてのOGCジオメトリタイプを保存:Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon
  • 複数の入力ウィジェット:WKTテキスト入力、HTML5ジオロケーション付き緯度/経度、度-分-秒(DMS)、バウンディングボックス
  • 複数の出力フォーマッター:様々な形式での生出力(WKT、GeoJSON、KML、GPX、Google Geocode)および10進数、DMS、DM形式での緯度/経度表示
  • 近接フィルター、ソート、フィールド、引数ハンドラーを備えた包括的なViews統合
  • Viewsベースの地理クエリ用の矩形境界フィルターと引数
  • 様々な単位(キロメートル、メートル、マイル、ヤード、フィート、海里)での正確な距離計算のためのHaversine公式実装
  • 複数のストレージバックエンド:デフォルトWKTおよびPostgreSQLデータベース用PostGISジオメトリ
  • 起点を定義するための拡張可能な近接ソースプラグインシステム(手動入力、クライアントブラウザジオロケーション、コンテキストフィルター、既存の近接フィルター)
  • 専用のプロセスプラグインによるDrupal 7からの移行サポート
  • 地理データの一括インポート用Feedsモジュール統合
  • 地理フィールドリビジョンの比較用Diffモジュール統合
  • 重心、バウンディングボックス、geohash値の自動計算
  • 自動位置検出のためのHTML5 Geolocation API統合

Use Cases

ビジネス所在地の保存と表示

「Location」コンテンツタイプにGeofieldを追加して、ビジネスの住所を地理的なポイントとして保存します。簡単なデータ入力のためにHTML5ジオロケーション付きの緯度/経度ウィジェットを使用し、Geofield MapやLeafletモジュールと組み合わせてインタラクティブな地図上に場所を表示します。

店舗検索システムの構築

訪問者が自分の場所を入力したりブラウザのジオロケーションを使用できる公開Geofield近接フィルター付きのViewsページを作成します。結果を距離順にソートし、各店舗までの計算された距離を表示します。矩形境界フィルターと組み合わせてマップベースの検索を実現します。

配送ルートの追跡

Geofieldを使用して配送ルートを表すLineStringジオメトリを保存します。モジュールは完全なルートをWKTラインストリングとして保存しながら、効率的な空間クエリのために重心とバウンディングボックスを計算します。

地理的境界の定義

販売テリトリー、サービスエリア、または行政境界を定義するためにPolygonジオメトリを保存します。素早い矩形エリアにはバウンディングボックスウィジェットを、複雑なポリゴン形状にはWKTウィジェットを使用します。

位置データの移行

Drupal移行中にgeofield_latlonマイグレートプロセスプラグインを使用して、個別の緯度と経度のソースフィールドをGeofield値に結合します。

位置情報の一括インポート

Feedsモジュール統合を使用して、緯度/経度カラムまたはWKT/GeoJSONジオメトリ文字列を含むCSVファイルから位置データをインポートします。

Tips

  • 正確な近接計算を確保するため、座標の小数点区切りにはコンマ(,)ではなくドット(.)を使用してください
  • 緯度/経度ウィジェットはPointジオメトリのみをサポートします。ラインやポリゴンにはWKTウィジェットを使用してください
  • ユーザー入力を受け付ける場合は、無効なデータを防ぐためにWKTウィジェットでジオメトリ検証を有効にしてください
  • ネイティブの空間関数とインデックスを活用するため、PostgreSQLデータベースにはPostGISバックエンドを選択してください
  • 近接計算はHaversine公式を使用しており、ほとんどのユースケースで正確ですが、球形の地球を仮定しています
  • Views近接引数は単位サフィックスをサポート:km(キロメートル)、m(メートル)、mi(マイル)、yd(ヤード)、ft(フィート)、nmi(海里)
  • geohashカラムは、複雑な計算なしで効率的な空間インデックスと近隣検索を可能にします
  • 大規模なデータセットの場合、より良いクエリパフォーマンスのためにlat、lon、geohashカラムにデータベースインデックスを追加してください

Technical Details

Hooks 1
hook_field_views_data

Geofieldフィールド用のViewsデータを実装し、近接および境界ハンドラーを追加します。