# Django 5.0.9.dev20240806133106 ドキュメント

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

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, 5.x
GDAL | Geospatial Data Abstraction Library | Yes | 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.4
GeoIP | IPベースのジオロケーション ライブラリ | No | 2
PostGIS | PostgreSQL の空間拡張機能 | Yes (PostgreSQL のみ) | 3.4, 3.3, 3.2, 3.1, 3.0, 2.5
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

また、 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

次に、ソースコードのアーカイブを解凍し、 `data` サブディレクトリに座標変換ファイルを展開します (PROJ < 6.xの場合は `nad` サブディレクトリを使用してください)。これは設定の 前 に行う必要があります:

    $ 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'

脚注

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

[2] | 具体的には、GeoDjango は GDAL のコンポーネントである OGR ライブラリをサポートしています。