我正在为我的宠物项目尝试geodjango,一切看起来都不错......但
在我的模型中,我有一个这样的字段:
coordinates= models.PointField(srid=4326,default='POINT(0.0 0.0)')
我的管理员从admin.OSMGeoAdmin
延伸但是当我在管理员中打开一个新的模型实例时,我没有在地图中看到'0.00,0.00'点,如果我尝试保存文档,我会得到'没有提供几何值'。就像管理员只是不能把点放在地图上。
另外,如果我尝试使用shell,我可以保存没有问题的实例,并使用默认值POINT(0.0 0.0)获取字段。
我在管理员中遗漏了什么吗?
感谢任何提示!
答案 0 :(得分:3)
我有同样的问题。 有点奇怪。获得POST的内容毫无意义。 在点击提交时,textarea具有正确的几何值(因为我在表单上放了一个onsubmit,输出这个值)。 但提交的内容并非如此。 所以我把JS关掉......哇。提交了正确的值,我有点高兴,但这不是解决方案。 但是我不知道javascript正在做什么。 我用Django 1.3和1.4试过这个。 你有运气吗?
更新。再一个'解决方案'...覆盖openlayers.html并将textarea转换为标准文本输入。哇。再次工作。
解决!
所以我采取了一些挖掘...但是我的管理员使用了tinymce ... Tinymce在textareas上工作是的......好吧它搞砸了小部件textarea,但是一直如此默默地。
editor_deselector:“vWKTField”
答案 1 :(得分:2)
好吧,在使用open layers.html(感谢noisyboiler!)后,我发现OSMGeoAdmin display_wkt
上有一个属性,将其设置为True
将显示textArea而不会破解模板。
对于具有现有点的条目,它包含以下格式的值:
SRID=3857;POINT(890338.8453418 -1109499.0330941)
所以我只需将我的Point Field更改为:
coordinates= models.PointField(srid=4326,default='SRID=3857;POINT(0.0 0.0)')
我从Spherical Mercator了解到的是4326用于二维地图,但似乎谷歌地图使用3857包含球形投影。
现在有效!