{"title":"GeoDjango モデル API","version":"5.0","locale":"ja","docname":"ref/contrib/gis/model-api","url":"/ja/5.0/ref/contrib/gis/model-api/","canonical":"https://djangodocs.dev/ja/5.0/ref/contrib/gis/model-api/","summary":"このドキュメントでは GeoDjango Model API の詳細を説明します。この節では、次の ZIP code と Digital Elevation Model の地理情報モデルを例として使います: Code Copy from django.contrib.gis.db import models class…","html":"<span id=\"geodjango-model-api\"></span><h1>GeoDjango モデル API<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.db.models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>このドキュメントでは GeoDjango Model API の詳細を説明します。この節では、次の <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/ZIP_code\">ZIP code</a> と <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Digital_elevation_model\">Digital Elevation Model</a> の地理情報モデルを例として使います:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.gis.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Zipcode</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n    <span class=\"n\">poly</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PolygonField</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Elevation</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">rast</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">RasterField</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"spatial-field-types\">\n<h2>空間フィールドのタイプ<a class=\"heading-anchor\" href=\"#spatial-field-types\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>空間フィールドは一連のジオメトリフィールド型と1つのラスターフィールド型で構成されます。各ジオメトリフィールド型は OpenGIS Simple Features 仕様  <a class=\"footnote-reference brackets\" href=\"#fnogc\" id=\"id3\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>1<span class=\"fn-bracket\">]</span></a> に対応しています。ラスターデータに対するこのような標準は存在しません。</p>\n<section id=\"geometryfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">GeometryField</span></code><a class=\"heading-anchor\" href=\"#geometryfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.GeometryField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GeometryField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.GeometryField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>ジオメトリフィールドの基本クラス。</p>\n</section>\n<section id=\"pointfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">PointField</span></code><a class=\"heading-anchor\" href=\"#pointfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.PointField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PointField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.PointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.Point\" title=\"django.contrib.gis.geos.Point\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Point</span></code></a> を格納します。</p>\n</section>\n<section id=\"linestringfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LineStringField</span></code><a class=\"heading-anchor\" href=\"#linestringfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.LineStringField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LineStringField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.LineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.LineString\" title=\"django.contrib.gis.geos.LineString\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LineString</span></code></a> を格納します。</p>\n</section>\n<section id=\"polygonfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">PolygonField</span></code><a class=\"heading-anchor\" href=\"#polygonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.PolygonField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PolygonField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.PolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.Polygon\" title=\"django.contrib.gis.geos.Polygon\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Polygon</span></code></a> を格納します。</p>\n</section>\n<section id=\"multipointfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiPointField</span></code><a class=\"heading-anchor\" href=\"#multipointfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.MultiPointField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MultiPointField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.MultiPointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.MultiPoint\" title=\"django.contrib.gis.geos.MultiPoint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiPoint</span></code></a> を格納します。</p>\n</section>\n<section id=\"multilinestringfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiLineStringField</span></code><a class=\"heading-anchor\" href=\"#multilinestringfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.MultiLineStringField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MultiLineStringField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.MultiLineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.MultiLineString\" title=\"django.contrib.gis.geos.MultiLineString\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiLineString</span></code></a> を格納します。</p>\n</section>\n<section id=\"multipolygonfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiPolygonField</span></code><a class=\"heading-anchor\" href=\"#multipolygonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.MultiPolygonField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MultiPolygonField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.MultiPolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.MultiPolygon\" title=\"django.contrib.gis.geos.MultiPolygon\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiPolygon</span></code></a> を格納します。</p>\n</section>\n<section id=\"geometrycollectionfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">GeometryCollectionField</span></code><a class=\"heading-anchor\" href=\"#geometrycollectionfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.GeometryCollectionField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GeometryCollectionField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.GeometryCollectionField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geos/#django.contrib.gis.geos.GeometryCollection\" title=\"django.contrib.gis.geos.GeometryCollection\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GeometryCollection</span></code></a> を格納します。</p>\n</section>\n<section id=\"rasterfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RasterField</span></code><a class=\"heading-anchor\" href=\"#rasterfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.RasterField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RasterField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.RasterField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.GDALRaster\" title=\"django.contrib.gis.gdal.GDALRaster\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GDALRaster</span></code></a> を格納します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">RasterField</span></code> は現在、PostGIS バックエンドのみで実装されています。</p>\n</section>\n</section>\n<section id=\"spatial-field-options\">\n<h2>空間フィールドのオプション<a class=\"heading-anchor\" href=\"#spatial-field-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django のモデルフィールドで利用できる通常の <a class=\"reference internal\" href=\"/ja/5.0/ref/models/fields/#common-model-field-options\"><span class=\"std std-ref\">フィールドオプション</span></a> に加えて、空間フィールドには以下の追加オプションがあります。すべてオプションです。</p>\n<section id=\"srid\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">srid</span></code><a class=\"heading-anchor\" href=\"#srid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.BaseSpatialField.srid\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseSpatialField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">srid</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.BaseSpatialField.srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>ジオメトリフィールドの SRID <a class=\"footnote-reference brackets\" href=\"#fnogcsrid\" id=\"id4\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>2<span class=\"fn-bracket\">]</span></a> (Spatial Reference System Identity) を指定した値に設定します。デフォルトは 4326 (別名 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/WGS84\">WGS84</a> 、単位は緯度経度)。</p>\n<section id=\"selecting-an-srid\">\n<span id=\"id6\"></span><h4>SRID の選択<a class=\"heading-anchor\" href=\"#selecting-an-srid\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>モデルに適切な SRID を選択することは、開発者が慎重に検討すべき重要な決定事項です。SRIDは、空間データベースのデータを解釈するために使用される投影システムに対応する整数指定子です。 <a class=\"footnote-reference brackets\" href=\"#fnsrid\" id=\"id7\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>3<span class=\"fn-bracket\">]</span></a> 投影システムは、場所を特定する座標にコンテキストを与えます。測地学 <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Geodesy\">geodesy</a> の詳細はこのドキュメントの範囲外ですが、一般的な問題は、地球は球形であり、地球の表現 (紙の地図やウェブマップなど) は球形ではないということです。</p>\n<p>ほとんどの人は、緯度と経度を使って地表上の位置を参照することに慣れています。しかし、緯度と経度は距離ではなく角度です。言い換えれば、平面上の2点間の最短経路は直線ですが、(地球のような) 曲面上の2点間の最短経路は、<a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Great_circle\">great circle</a> の <em>弧</em> です <a class=\"footnote-reference brackets\" href=\"#fnthematic\" id=\"id8\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>4<span class=\"fn-bracket\">]</span></a> 。したがって、平面単位 (キロメートルやマイルなど) で距離を求めるには、追加の計算が必要になります。地理座標系を使うことは、開発者に後で複雑な問題をもたらすかもしれません。例えば、SpatiaLiteでは、地理座標系を使用してジオメトリ間の距離計算を実行する機能がないため、WGS84で格納された郡の境界から5マイル以内のすべてのポイントを検索するクエリを作成することはできません <a class=\"footnote-reference brackets\" href=\"#fndist\" id=\"id9\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>5<span class=\"fn-bracket\">]</span></a> 。</p>\n<p>地球の地表の一部は、二次元またはデカルト平面に投影できます。投影座標系は地域固有のアプリケーションに特に便利であり、たとえば、データベースで <a class=\"reference external\" href=\"https://spatialreference.org/ref/epsg/2796/\">North Kansas</a> エリアのジオメトリだけを扱うことを知っている場合は、その地域固有の投影系を使用することを検討できます。さらに、投影座標系はデカルト単位 (メートルやフィートなど) で定義されており、距離の計算が容易になります。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>PostGISでWGS84の点以外のジオメトリを使用して任意の距離クエリを実行したい場合で、適切なパフォーマンスが必要な場合は、 <a class=\"reference internal\" href=\"#django.contrib.gis.db.models.GeometryField.geography\" title=\"django.contrib.gis.db.models.GeometryField.geography\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">GeometryField.geography</span></code></a> キーワードを有効にして、代わりに <a class=\"reference internal\" href=\"#geography-type\"><span class=\"std std-ref\">ジオグラフィデータベース型</span></a> が使用されるようにします。</p>\n</aside>\n<p>追加のリソース:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference external\" href=\"https://spatialreference.org/\">spatialreference.org</a>: Djangoを使用した空間参照システムのデータベース。</p></li>\n<li><p><a class=\"reference external\" href=\"https://web.archive.org/web/20080302095452/http://welcome.warnercnr.colostate.edu/class_info/nr502/lg3/datums_coordinates/spcs.html\">The State Plane Coordinate System</a>: 米国で使用されている様々な投影系をカバーするウェブサイトです。WGS84のような地理座標系ではなく、米国で遭遇する空間データの多くはこれらの座標系のいずれかになります。</p></li>\n</ul>\n</section>\n</section>\n<section id=\"spatial-index\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">spatial_index</span></code><a class=\"heading-anchor\" href=\"#spatial-index\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.BaseSpatialField.spatial_index\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseSpatialField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">spatial_index</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.BaseSpatialField.spatial_index\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> です。指定されたジオメトリフィールドに空間インデックスを作成します。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>空間インデックスは通常のデータベースインデックスとは異なる方法で作成されるため、これは <code class=\"docutils literal notranslate\"><span class=\"pre\">db_index</span></code> フィールドオプションとは異なります。具体的には、空間インデックスは通常 R-Tree を使用して作成されますが、通常のデータベースインデックスは B-Tree を使用します。</p>\n</aside>\n</section>\n</section>\n<section id=\"geometry-field-options\">\n<span id=\"id15\"></span><h2>ジオメトリフィールドのオプション<a class=\"heading-anchor\" href=\"#geometry-field-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>ジオメトリフィールドには追加オプションがあります。以下のすべてのオプションは任意です。</p>\n<section id=\"dim\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">dim</span></code><a class=\"heading-anchor\" href=\"#dim\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.GeometryField.dim\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">GeometryField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">dim</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.GeometryField.dim\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このオプションは、ジオメトリフィールドの座標次元をカスタマイズするために使用できます。デフォルトでは、2次元ジオメトリを表すために2に設定されています。それをサポートする空間バックエンドでは、3次元をサポートするために3に設定できます。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>現時点では、3Dサポートは PostGIS と SpatiaLite バックエンドに限られています。</p>\n</aside>\n</section>\n<section id=\"geography\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">geography</span></code><a class=\"heading-anchor\" href=\"#geography\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.db.models.GeometryField.geography\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">GeometryField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">geography</span></span><a class=\"heading-anchor\" href=\"#django.contrib.gis.db.models.GeometryField.geography\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このオプションを <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> に設定すると、ジオメトリ型ではなくジオグラフィ型のデータベースカラムが作成されます。詳細は以下の <a class=\"reference internal\" href=\"#geography-type\"><span class=\"std std-ref\">ジオグラフィ型</span></a> セクションを参照してください。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>ジオグラフィのサポートは PostGIS に限定され、SRID が 4326 に強制されます。</p>\n</aside>\n<section id=\"geography-type\">\n<span id=\"id16\"></span><h4>ジオグラフィ (Geography) 型<a class=\"heading-anchor\" href=\"#geography-type\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>ジオグラフィ (geography) 型は、地理座標 (例えばWGS84経度/緯度)で表現された空間特徴をネイティブにサポートします <a class=\"footnote-reference brackets\" href=\"#fngeography\" id=\"id17\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>6<span class=\"fn-bracket\">]</span></a> 。ジオメトリ型が使用する平面とは異なり、ジオグラフィ型はデータを球体で表現します。ジオグラフィのカラムに対して行われる距離や計測の操作は、自動的に大円弧の計算を行い、線形単位を返します。言い換えると、2つのジオグラフィに対して <code class=\"docutils literal notranslate\"><span class=\"pre\">ST_Distance</span></code> を呼び出すと、メートル単位の値が返されます (WGS84のジオメトリ列に対して呼び出した場合は度単位になります) 。</p>\n<p>地理計算にはより多くの数学が関わるため、地理型に対して使用できる PostGIS 空間ルックアップのサブセットが限られています。具体的には、<a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#distance-lookups\"><span class=\"std std-ref\">距離ルックアップ</span></a> に加えて、ジオグラフィカラム用に利用可能な追加の <a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#spatial-lookups\"><span class=\"std std-ref\">空間ルックアップ</span></a> は以下のみです。</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#std-fieldlookup-bboverlaps\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">bboverlaps</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#std-fieldlookup-coveredby\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">coveredby</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#std-fieldlookup-covers\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">covers</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.0/ref/contrib/gis/geoquerysets/#std-fieldlookup-intersects\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">intersects</span></code></a></p></li>\n</ul>\n<p>入力としてジオグラフィ型をサポートしていない空間ルックアップや集計を使用する必要がある場合、 <a class=\"reference internal\" href=\"/ja/5.0/ref/models/database-functions/#django.db.models.functions.Cast\" title=\"django.db.models.functions.Cast\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Cast</span></code></a> データベース関数を使用して、クエリの中でジオグラフィカラムをジオメトリ型に変換できます:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.gis.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">PointField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Cast</span>\n\n<span class=\"n\">Zipcode</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">geom</span><span class=\"o\">=</span><span class=\"n\">Cast</span><span class=\"p\">(</span><span class=\"s2\">&quot;geography_field&quot;</span><span class=\"p\">,</span> <span class=\"n\">PointField</span><span class=\"p\">()))</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n    <span class=\"n\">geom__within</span><span class=\"o\">=</span><span class=\"n\">poly</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>詳細については、PostGISのドキュメントに <a class=\"reference external\" href=\"https://postgis.net/docs/using_postgis_dbmanagement.html#PostGIS_GeographyVSGeometry\">ジオメトリ型ではなくジオグラフィ型を使うべき場合</a>. を決定するのに役立つセクションがあります。</p>\n<p class=\"rubric\">脚注</p>\n<aside class=\"footnote-list brackets\">\n<aside class=\"footnote brackets\" id=\"fnogc\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id3\">1</a><span class=\"fn-bracket\">]</span></span>\n<p>OpenGIS Consortium, Inc., <a class=\"reference external\" href=\"https://www.ogc.org/standard/sfs/\">Simple Feature Specification For SQL</a>.</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fnogcsrid\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id4\">2</a><span class=\"fn-bracket\">]</span></span>\n<p><em>See id.</em> at Ch. 2.3.8, p. 39 (Geometry Values and Spatial Reference Systems).</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fnsrid\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id7\">3</a><span class=\"fn-bracket\">]</span></span>\n<p>通常、SRID 整数は EPSG (<a class=\"reference external\" href=\"https://epsg.org/\">European Petroleum Survey Group</a>) 識別子に対応します。しかし、空間データベースの空間参照系テーブルで定義されたカスタム投影に関連付けられている場合もあります。</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fnthematic\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id8\">4</a><span class=\"fn-bracket\">]</span></span>\n<p>Terry A. Slocum, Robert B. McMaster, Fritz C. Kessler, &amp; Hugh H. Howard, <em>Thematic Cartography and Geographic Visualization</em> (Prentice Hall, 2nd edition), at Ch. 7.1.3.</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fndist\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id9\">5</a><span class=\"fn-bracket\">]</span></span>\n<p>この制限は PostGIS には適用されません。</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fngeography\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id17\">6</a><span class=\"fn-bracket\">]</span></span>\n<p>詳細は <a class=\"reference external\" href=\"https://postgis.net/docs/using_postgis_dbmanagement.html#PostGIS_Geography\">PostGIS Geography Type</a> のドキュメントを参照してください。</p>\n</aside>\n</aside>\n</section>\n</section>\n</section>","rootId":"module-django.contrib.gis.db.models","toc":[{"title":"空間フィールドのタイプ","anchor":"spatial-field-types","children":[{"title":"GeometryField","anchor":"geometryfield","children":[]},{"title":"PointField","anchor":"pointfield","children":[]},{"title":"LineStringField","anchor":"linestringfield","children":[]},{"title":"PolygonField","anchor":"polygonfield","children":[]},{"title":"MultiPointField","anchor":"multipointfield","children":[]},{"title":"MultiLineStringField","anchor":"multilinestringfield","children":[]},{"title":"MultiPolygonField","anchor":"multipolygonfield","children":[]},{"title":"GeometryCollectionField","anchor":"geometrycollectionfield","children":[]},{"title":"RasterField","anchor":"rasterfield","children":[]}]},{"title":"空間フィールドのオプション","anchor":"spatial-field-options","children":[{"title":"srid","anchor":"srid","children":[{"title":"SRID の選択","anchor":"selecting-an-srid","children":[]}]},{"title":"spatial_index","anchor":"spatial-index","children":[]}]},{"title":"ジオメトリフィールドのオプション","anchor":"geometry-field-options","children":[{"title":"dim","anchor":"dim","children":[]},{"title":"geography","anchor":"geography","children":[{"title":"ジオグラフィ (Geography) 型","anchor":"geography-type","children":[]}]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.0/ref/"},{"docname":"ref/contrib/index","title":"contrib パッケージ","url":"/ja/5.0/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/ja/5.0/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/install/spatialite","title":"SpatiaLite のインストール","url":"/ja/5.0/ref/contrib/gis/install/spatialite/"},"next":{"docname":"ref/contrib/gis/db-api","title":"GeoDjango データベース API","url":"/ja/5.0/ref/contrib/gis/db-api/"},"formats":{"html":"/ja/5.0/ref/contrib/gis/model-api/","markdown":"/ja/5.0/ref/contrib/gis/model-api.md","json":"/ja/5.0/ref/contrib/gis/model-api.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/ref/contrib/gis/model-api.txt","official":"https://docs.djangoproject.com/ja/5.0/ref/contrib/gis/model-api/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}