2016-05-09 14 views
1

私はGeoDjangoを使用して、ユーザーがマップ上の領域を選択して名前を付けることができるフォームを表示しています。GeoDjangoポリゴンフィールドParseException

私は次のモデル

import django.contrib.gis.db.models as models  
class Area(models.Model): 
    name = models.CharField(max_length=25) 
    area_target = models.PolygonField(default='POLYGON EMPTY') 

を持っており、このフォーム

from django.contrib.gis import forms 
class AreaForm(forms.Form): 
    name = forms.CharField(max_length=160) 
    area_target = forms.PolygonField(srid=4326, required=False, widget=forms.OSMWidget(attrs={'map_width': 600, 'map_height': 500})) 

は、フォームが正しく表示されていると私はマップウィジェットを使用して領域を選択することができますが、私がすると、次のエラーメッセージが表示されます

GEOS_ERROR: ParseException: Expected 'Z', 'M', 'ZM', 'EMPTY' or '(' but encountered : ')'

GEOS_ERROR: ParseException: Expected 'Z', 'M', 'ZM', 'EMPTY' or '(' but encountered : ')'

Error creating geometry from value 'SRID=900913;POLYGON()' (Error encountered checking Geometry returned from GEOS C function "GEOSWKTReader_read_r".)

ポリゴンを描画する方法は次のとおりです。 Polygon drawn with OSM Widget

デバッグ出力からわかるように、ポリゴンのエッジの値はありません。

私はDjango 1.9.4、postgis拡張機能を備えたpostgres 9.5.1.0 DB、ジオメトリバックエンドとしてgeos 3.5を使用しています。

何か問題があると教えてもらえますか?

+0

あなたはAreaオブジェクトの作成方法を示していません。 – e4c5

+0

領域オブジェクトは、ポリゴンを描画して作成する必要があります。スクリーンショットを追加しました... – user2393256

+0

javascriptコンソールを開いてエラーが表示された場合は表示してください – e4c5

答えて

1

POLYGON(())は無効ですWKT、示されているようにParseExceptionをスローします。

POLYGON EMPTYを試して空のポリゴンジオメトリを作成してください。

私はGeoDjangoに精通していませんが、おそらくNULL/Noneもオプションです。

+0

ありがとうございますが、これで問題は解決しませんでした... – user2393256

関連する問題