GeoDjango フォーム APILink to this heading
GeoDjango はジオローカライズされたデータを地図上に視覚的に表示・編集するために、いくつかの特殊なフォームフィールドとウィジェットを提供します。デフォルトでは、 NASA が提供する WMS レイヤーをベースとした OpenLayers を利用した地図を使います。
フィールドの引数Link to this heading
通常の フォームフィールドの引数 に加えて、 GeoDjango のフォームフィールドは以下のオプションの引数を取ります。
sridLink to this heading
- Field.sridLink to this definition
これはフィールドの値を変換するSRIDコードです。例えば、マップウィジェットのSRIDがアプリケーションやデータベースで一般的に使われるSRIDと異なる場合、フィールドは入力値を自動的にそのSRIDに変換します。
geom_typeLink to this heading
- Field.geom_typeLink to this definition
通常、その属性を設定または変更する必要はありません。この属性はフィールドクラスに応じて設定されるべきです。これはOpenGIS標準のジオメトリ名に一致します。
フォームフィールド クラスLink to this heading
GeometryFieldLink to this heading
- class GeometryFieldLink to this definition
PointFieldLink to this heading
- class PointFieldLink to this definition
LineStringFieldLink to this heading
- class LineStringFieldLink to this definition
PolygonFieldLink to this heading
- class PolygonFieldLink to this definition
MultiPointFieldLink to this heading
- class MultiPointFieldLink to this definition
MultiLineStringFieldLink to this heading
- class MultiLineStringFieldLink to this definition
MultiPolygonFieldLink to this heading
- class MultiPolygonFieldLink to this definition
GeometryCollectionFieldLink to this heading
- class GeometryCollectionFieldLink to this definition
フォームウィジェットLink to this heading
GeoDjango のフォームウィジェットを使うと、ビジュアルマップ上に地理情報を表示したり編集したりできます。現在利用可能なウィジェットはどれも 3D ジオメトリをサポートしていないので、 ジオメトリフィールドは Textarea ウィジェットを使ってフォールバックします。
ウィジェットの属性Link to this heading
GeoDjango ウィジェットはテンプレートベースなので、その属性のほとんどは他の Django ウィジェットの属性と異なります。
- BaseGeometryWidget.geom_typeLink to this definition
OpenGIS ジオメトリタイプ。通常、フォームフィールドによって設定されます。
- BaseGeometryWidget.map_heightLink to this definition
- BaseGeometryWidget.map_widthLink to this definition
ウィジェットマップの高さと幅 (デフォルトは400x600)。
- BaseGeometryWidget.map_sridLink to this definition
地図で使用されるSRIDコード (デフォルトは4326)。
- BaseGeometryWidget.display_rawLink to this definition
主にデバッグのために、現在のジオメトリのシリアライズされた表現を示すテキストエリア入力を表示するかどうかを指定するブール値 (デフォルトは
False).
- BaseGeometryWidget.supports_3dLink to this definition
ウィジェットが3Dデータの編集をサポートしているかどうかを示します (デフォルトは
Falseです) 。
- BaseGeometryWidget.template_nameLink to this definition
地図ウィジェットのレンダリングに使用されるテンプレート。
ウィジェットの属性は、他のDjangoウィジェットと同じように渡すことができます。例えば、次のようにします:
from django.contrib.gis import forms
class MyGeoForm(forms.Form):
point = forms.PointField(widget=forms.OSMWidget(attrs={"display_raw": True}))
Widget クラスLink to this heading
BaseGeometryWidget
- class BaseGeometryWidgetLink to this definition
これは、サブクラスが必要とするロジックを含む抽象ベースウィジェットです。このウィジェットを直接ジオメトリフィールドに使うことはできません。GeoDjango ウィジェットのレンダリングは
template_nameクラス属性で識別されるテンプレートに基づいていることに注意してください。
OpenLayersWidget
- class OpenLayersWidgetLink to this definition
これはすべての GeoDjango フォームフィールドで使用されるデフォルトウィジェットです。
template_nameはgis/openlayers.htmlです。OpenLayersWidgetとOSMWidgetはcdn.jsdelivr.netのコンテンツ配信ネットワークでホストされているol.jsファイルを使用します。これらのウィジェットをサブクラス化することで、内部のMediaクラスのjsプロパティにol.jsファイルの独自のバージョンを指定できます (定数として定義されたアセット を参照) 。
OSMWidget
- class OSMWidgetLink to this definition
このウィジェットは地理情報オブジェクトを表示するためにOpenStreetMapベースレイヤーを使用します。属性は以下の通りです:
- template_nameLink to this definition
gis/openlayers-osm.html
- default_latLink to this definition
- default_lonLink to this definition
デフォルトの中心緯度と経度はそれぞれ
47と5で、フランス東部の位置です。
- default_zoomLink to this definition
デフォルトの地図の縮尺は
12です。
OpenLayersWidgetの JavaScript ファイルのホスティングに関する注意はここにも適用されます。マップタイルへのhttpsアクセスに関する FAQ answer も参照してください。