{"title":"API Formulir GeoDjango","version":"1.10","locale":"id","docname":"ref/contrib/gis/forms-api","url":"/id/1.10/ref/contrib/gis/forms-api/","canonical":"https://djangodocs.dev/id/1.10/ref/contrib/gis/forms-api/","summary":"GeoDjango provides some specialized form fields and widgets in order to visually display and edit geolocalized data on a map.","html":"<span id=\"geodjango-forms-api\"></span><h1>API Formulir GeoDjango<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>GeoDjango provides some specialized form fields and widgets in order to visually\ndisplay and edit geolocalized data on a map. By default, they use\n<a class=\"reference external\" href=\"http://openlayers.org/\">OpenLayers</a>-powered maps, with a base WMS layer provided by <a class=\"reference external\" href=\"http://www.metacarta.com/\">Metacarta</a>.</p>\n<section id=\"field-arguments\">\n<h2>Argumen bidang<a class=\"heading-anchor\" href=\"#field-arguments\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>In addition to the regular <a class=\"reference internal\" href=\"/id/1.10/ref/forms/fields/#core-field-arguments\"><span class=\"std std-ref\">form field arguments</span></a>,\nGeoDjango form fields take the following optional arguments.</p>\n<section id=\"srid\">\n<h3><code class=\"docutils literal notranslate\">srid</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.forms.Field.srid\">\n<span class=\"sig-prename descclassname\">Field.</span><span class=\"sig-name descname\">srid</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.Field.srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This is the SRID code that the field value should be transformed to. For\nexample, if the map widget SRID is different from the SRID more generally\nused by your application or database, the field will automatically convert\ninput values into that SRID.</p>\n</dd></dl>\n\n</section>\n<section id=\"geom-type\">\n<h3><code class=\"docutils literal notranslate\">geom_type</code><a class=\"heading-anchor\" href=\"#geom-type\"><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.forms.Field.geom_type\">\n<span class=\"sig-prename descclassname\">Field.</span><span class=\"sig-name descname\">geom_type</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.Field.geom_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>You generally shouldn't have to set or change that attribute which should\nbe setup depending on the field class. It matches the OpenGIS standard\ngeometry name.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"form-field-classes\">\n<h2>Kelas-kelas bidang formulir<a class=\"heading-anchor\" href=\"#form-field-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"geometryfield\">\n<h3><code class=\"docutils literal notranslate\">GeometryField</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.forms.GeometryField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">GeometryField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.GeometryField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"pointfield\">\n<h3><code class=\"docutils literal notranslate\">PointField</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.forms.PointField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">PointField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.PointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"linestringfield\">\n<h3><code class=\"docutils literal notranslate\">LineStringField</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.forms.LineStringField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LineStringField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.LineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"polygonfield\">\n<h3><code class=\"docutils literal notranslate\">PolygonField</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.forms.PolygonField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">PolygonField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.PolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multipointfield\">\n<h3><code class=\"docutils literal notranslate\">MultiPointField</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.forms.MultiPointField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiPointField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiPointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multilinestringfield\">\n<h3><code class=\"docutils literal notranslate\">MultiLineStringField</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.forms.MultiLineStringField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiLineStringField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiLineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multipolygonfield\">\n<h3><code class=\"docutils literal notranslate\">MultiPolygonField</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.forms.MultiPolygonField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiPolygonField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiPolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"geometrycollectionfield\">\n<h3><code class=\"docutils literal notranslate\">GeometryCollectionField</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.forms.GeometryCollectionField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">GeometryCollectionField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.GeometryCollectionField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n</section>\n<section id=\"module-django.contrib.gis.widgets\">\n<span id=\"form-widgets\"></span><h2>Form widgets<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>GeoDjango form widgets allow you to display and edit geographic data on a\nvisual map.\nNote that none of the currently available widgets supports 3D geometries, hence\ngeometry fields will fallback using a simple <code class=\"docutils literal notranslate\">Textarea</code> widget for such data.</p>\n<section id=\"widget-attributes\">\n<h3>Widget attributes<a class=\"heading-anchor\" href=\"#widget-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>GeoDjango widgets are template-based, so their attributes are mostly different\nfrom other Django widget attributes.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.geom_type\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">geom_type</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.geom_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The OpenGIS geometry type, generally set by the form field.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.map_height\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">map_height</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.map_height\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.map_width\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">map_width</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.map_width\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Height and width of the widget map (default is 400x600).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.map_srid\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">map_srid</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.map_srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>SRID code used by the map (default is 4326).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.display_raw\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">display_raw</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.display_raw\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Boolean value specifying if a textarea input showing the serialized\nrepresentation of the current geometry is visible, mainly for debugging\npurposes (default is <code class=\"docutils literal notranslate\">False</code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.supports_3d\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">supports_3d</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.supports_3d\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Indicates if the widget supports edition of 3D data (default is <code class=\"docutils literal notranslate\">False</code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget.template_name\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">template_name</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The template used to render the map widget.</p>\n</dd></dl>\n\n<p>You can pass widget attributes in the same manner that for any other Django\nwidget. For example:</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=\"nn\">django.contrib.gis</span> <span class=\"kn\">import</span> forms\n\n<span class=\"k\">class</span> <span class=\"nc\">MyGeoForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    point <span class=\"o\">=</span> forms<span class=\"o\">.</span>PointField<span class=\"p\">(</span>widget<span class=\"o\">=</span>\n        forms<span class=\"o\">.</span>OSMWidget<span class=\"p\">(</span>attrs<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;map_width&#39;</span><span class=\"p\">:</span> <span class=\"mi\">800</span><span class=\"p\">,</span> <span class=\"s1\">&#39;map_height&#39;</span><span class=\"p\">:</span> <span class=\"mi\">500</span><span class=\"p\">}))</span>\n</code></pre></div>\n</section>\n<section id=\"widget-classes\">\n<h3>Widget classes<a class=\"heading-anchor\" href=\"#widget-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\">BaseGeometryWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.BaseGeometryWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BaseGeometryWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah sebuah widget dasar jelas mengandung logika dibutuhkan oleh sub kelas. Anda tidak dapat secara langsung menggunakan widget ini untuk bidang geometri. Cata bahwa pembangunan dari widget GeoDjango berdasarkan pada sebuah cetakan, dicirikan oleh atribut kelas <a class=\"reference internal\" href=\"#django.contrib.gis.widgets.BaseGeometryWidget.template_name\" title=\"django.contrib.gis.widgets.BaseGeometryWidget.template_name\"><code class=\"xref py py-attr docutils literal notranslate\">template_name</code></a>.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">OpenLayersWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.OpenLayersWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">OpenLayersWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.OpenLayersWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This is the default widget used by all GeoDjango form fields.\n<code class=\"docutils literal notranslate\">template_name</code> is <code class=\"docutils literal notranslate\">gis/openlayers.html</code>.</p>\n<p><code class=\"docutils literal notranslate\">OpenLayersWidget</code> dan <a class=\"reference internal\" href=\"#django.contrib.gis.widgets.OSMWidget\" title=\"django.contrib.gis.widgets.OSMWidget\"><code class=\"xref py py-class docutils literal notranslate\">OSMWidget</code></a> menggunakan berkas <code class=\"docutils literal notranslate\">openlayers.js</code> ditempatkan pada situs jaringan <code class=\"docutils literal notranslate\">openlayers.org</code>. Ini bekerja untuk penggunaan dasar selama pengembangan, tetapi tidak sesuai untuk penyebaran produksi ketika <code class=\"docutils literal notranslate\">openlayers.org/api/</code> tidak ada jaminan naik dan berjalan pada peladen lambat. Anda karena itu disarankan men subkelaskan widget ini untuk menentukan versi anda sendiri dari berkas <code class=\"docutils literal notranslate\">openlayers.js</code> di sifat <code class=\"docutils literal notranslate\">js</code> dari kelas <code class=\"docutils literal notranslate\">Media</code> sebelah dalam (lihat <a class=\"reference internal\" href=\"/id/1.10/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">Assets as a static definition</span></a>). Anda dapat menyimpan salinan dari <code class=\"docutils literal notranslate\">openlayers.js</code> <a class=\"reference external\" href=\"http://docs.openlayers.org/library/deploying.html\">tailored to your needs</a> pada peladen anda sendiri atau mengacu ke salinan dari content-delivery network seperti <a class=\"reference external\" href=\"https://cdnjs.com/\">https://cdnjs.com/</a>. Ini akan juga mengizinkan anda melayani berkas JavaScript menggunakan protokol <code class=\"docutils literal notranslate\">https</code> jika dibutuhkan.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">OSMWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.widgets.OSMWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">OSMWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.widgets.OSMWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This widget uses an OpenStreetMap base layer (Mapnik) to display geographic\nobjects on.\n<code class=\"docutils literal notranslate\">template_name</code> is <code class=\"docutils literal notranslate\">gis/openlayers-osm.html</code>.</p>\n<p>The <a class=\"reference internal\" href=\"#django.contrib.gis.widgets.OpenLayersWidget\" title=\"django.contrib.gis.widgets.OpenLayersWidget\"><code class=\"xref py py-class docutils literal notranslate\">OpenLayersWidget</code></a> note about JavaScript file hosting above also\napplies here. See also this <a class=\"reference external\" href=\"https://help.openstreetmap.org/questions/10920/how-to-embed-a-map-in-my-https-site\">FAQ answer</a> about <code class=\"docutils literal notranslate\">https</code> access to map\ntiles.</p>\n</dd></dl>\n\n</section>\n</section>","rootId":"module-django.contrib.gis.forms","toc":[{"title":"Argumen bidang","anchor":"field-arguments","children":[{"title":"srid","anchor":"srid","children":[]},{"title":"geom_type","anchor":"geom-type","children":[]}]},{"title":"Kelas-kelas bidang formulir","anchor":"form-field-classes","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":"Form widgets","anchor":"module-django.contrib.gis.widgets","children":[{"title":"Widget attributes","anchor":"widget-attributes","children":[]},{"title":"Widget classes","anchor":"widget-classes","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/1.10/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/1.10/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/id/1.10/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/db-api","title":"API Basisdata GeoDjango","url":"/id/1.10/ref/contrib/gis/db-api/"},"next":{"docname":"ref/contrib/gis/geoquerysets","title":"Acuan API GeoQuerySet","url":"/id/1.10/ref/contrib/gis/geoquerysets/"},"formats":{"html":"/id/1.10/ref/contrib/gis/forms-api/","markdown":"/id/1.10/ref/contrib/gis/forms-api.md","json":"/id/1.10/ref/contrib/gis/forms-api.json"},"source":"https://github.com/django/django/blob/stable/1.10.x/docs/ref/contrib/gis/forms-api.txt","official":"https://docs.djangoproject.com/id/1.10/ref/contrib/gis/forms-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","fr","ja","id","pt-br","es","el","pl"]}