地理空間ライブラリのインストール

GeoDjangoは、以下のオープンソースの地理空間ライブラリを使用し、またはそのインターフェースを提供します:

プログラム 説明 必須 サポートされるバージョン
GEOS Geometry Engine Open Source Yes 3.12, 3.11, 3.10, 3.9, 3.8
PROJ Cartographic Projections library Yes (PostgreSQL and SQLite のみ) 9.x, 8.x, 7.x, 6.x
GDAL Geospatial Data Abstraction Library Yes 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0
GeoIP IPベースのジオロケーション ライブラリ No 2
PostGIS PostgreSQL の空間拡張機能 Yes (PostgreSQL のみ) 3.4, 3.3, 3.2, 3.1, 3.0
SpatiaLite SQLite の空間拡張機能 Yes (SQLite のみ) 5.1, 5.0, 4.3

これらのライブラリの古いバージョンや新しいバージョンは GeoDjango でも全く問題なく動くかもしれません。あなたの感覚によって異なるかもしれません。

注釈

GEOS、GDAL、GeoIP への GeoDjango インタフェースは、Django とは無関係に使うことができます。つまり、データベースや設定ファイルは必要ありません。 django.contrib.gis から通常通りインポートしてください。

Debian/Ubuntuでは、必要な地理空間ライブラリを直接または依存関係によってインストールする以下のパッケージをインストールすることをお勧めします:

$ sudo apt-get install binutils libproj-dev gdal-bin

また、 macOSWindows を使用している場合は、プラットフォーム別の説明も参照してください。

ソースコードからビルドする

UNIX や GNU/Linux システムでソースからインストールする場合は、インストール手順に注意して、指示された順番でライブラリをインストールしてください。MySQL や Oracle を空間データベースとして使用する場合、GEOS のみが必要です。

注釈

Linuxプラットフォームでは、各ライブラリをインストールした後に ldconfig コマンドを実行する必要があるかもしれません。例えば:

$ sudo make install
$ sudo ldconfig

注釈

macOSユーザーは、ソフトウェアをソースからコンパイルするために Xcode をインストールする必要があります。

GEOS

GEOS はジオメトリ操作を行うための C++ ライブラリで、GeoDjango が使うデフォルトの内部ジオメトリ表現です ("lazy" ジオメトリの背後にあります) 。具体的には、 C API ライブラリは ctypes を使って Python から直接呼び出されます (libgeos_c.so など)。

まず、GEOSのウェブサイトからGEOSをダウンロードし、ソースアーカイブを解凍します:

$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2

次に、GEOSディレクトリに移動し、 build フォルダを作成して、その中に移動してください:

$ cd geos-X.Y.Z
$ mkdir build
$ cd build

次に、パッケージをビルドしてインストールします:

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install

トラブルシューティング

GEOSライブラリが見つかりません

GeoDjango が GEOS を見つけられない場合、次のエラーが発生します:

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

最も一般的な解決策は、ライブラリの環境設定 を適切に設定するか、 または 設定で GEOS_LIBRARY_PATH を設定することです。

GEOSのバイナリパッケージを使用する場合 (たとえばUbuntu上で) 、 binutils をインストールする が必要になる可能性があります。

GEOS_LIBRARY_PATH

もしGEOSライブラリが標準以外の場所にあるか、システムのライブラリパスを変更したくない場合は、Djangoの設定ファイルに GEOS_LIBRARY_PATH を追加できます。これにはGEOS Cライブラリへのフルパスを指定します。例えば、以下のように設定できます:

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

注釈

設定は C 共有ライブラリの フル パスである必要があります。つまり、 libgeos.so ではなく libgeos_c.so を使用することが望まれます。

次も参照してください ログがGEOS関連のエラーでいっぱいです

PROJ

PROJ は、地理空間データを異なる座標参照系に変換するためのライブラリです。

まず、PROJのソースコードをダウンロードします:

$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz

... と座標変換 (datum shifting) ファイル (PROJ < 7.x の場合は proj-datumgrid-X.Y.tar.gz をダウンロード) [1]:

$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz

Next, untar the source code archive, and extract the datum shifting files in the data subdirectory. This must be done prior to configuration:

$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/data
$ tar xzf ../../proj-data-X.Y.tar.gz
$ cd ../..

PROJ 9.x以降のリリースでは、CMake を使用したビルドのみがサポートされます (PROJ RFC-7 参照) 。

CMake を使用してビルドするには、システムが build requirements を満たしていることを確認してください。その後、PROJディレクトリ内に build フォルダを作成し、そのフォルダに移動します。

$ cd proj-X.Y.Z
$ mkdir build
$ cd build

最後に、PROJの設定、作成、およびインストールを行います:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

GDAL

GDAL は優れたオープンソースの地理空間ライブラリで、ほとんどのベクタやラスタの空間データフォーマットの読み込みをサポートしています。現在のところ、GeoDjango は GDAL のベクトルデータ の機能のみをサポートしています [2]GEOSPROJ は GDAL をビルドする前にインストールする必要があります。

まず、最新のGDALリリースバージョンをダウンロードし、アーカイブを解凍します:

$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz

GDAL 3.6.x 以降では、リリースは CMake を使用したビルドのみをサポートしています。 CMake を使ってビルドするには、GDAL ディレクトリに build フォルダを作成し、その中に移動してください:

$ cd gdal-X.Y.Z
$ mkdir build
$ cd build

最後に、GDAL の設定、ビルド、インストールを行います:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

問題が発生した場合は、以下のトラブルシューティングのセクションを参照してください。

トラブルシューティング

GDAL ライブラリが見つかりません

GeoDjango が GDAL ライブラリを見つけられない場合は、 ライブラリの環境設定 を設定するか、もしくは 設定で GDAL_LIBRARY_PATH を設定してください。

GDAL_LIBRARY_PATH

GDAL ライブラリが標準以外の場所にあったり、システムのライブラリパスを変更 したくない場合は、Django の設定ファイルに GDAL_LIBRARY_PATH 設定を追加して、GDAL ライブラリへのフルパスを記述してください。例えば:

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

脚注

[1]特定の投影法へデータの変換を行う、または特定の投影法から変換を行うためには、データムシフトファイルが必要です。たとえば、Google projection (900913 または 3857) の PROJ 文字列は、追加のデータムシフトファイルにのみ含まれる null グリッドファイルを必要とします。シフトファイルを今インストールする方が、後でそれが無いことによって起きる問題をデバッグするより簡単です。
[2]具体的には、GeoDjango は GDAL のコンポーネントである OGR ライブラリをサポートしています。
Back to Top