地理空間ライブラリのインストール¶
GeoDjangoは、以下のオープンソースの地理空間ライブラリを使用し、またはそのインターフェースを提供します:
プログラム |
説明 |
必須 |
サポートされるバージョン |
---|---|---|---|
Geometry Engine Open Source |
Yes |
3.12, 3.11, 3.10, 3.9, 3.8 |
|
Cartographic Projections library |
Yes (PostgreSQL and SQLite のみ) |
9.x, 8.x, 7.x, 6.x |
|
Geospatial Data Abstraction Library |
Yes |
3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0 |
|
IPベースのジオロケーション ライブラリ |
No |
2 |
|
PostgreSQL の空間拡張機能 |
Yes (PostgreSQL のみ) |
3.4, 3.3, 3.2, 3.1, 3.0 |
|
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
また、 macOS や Windows を使用している場合は、プラットフォーム別の説明も参照してください。
ソースコードからビルドする¶
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] 。 GEOS と PROJ は 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'
脚注