如何将纬度/经度数据导入 PostgreSQL
PostgreSQL / Django / 新手在这里。
我有一堆带有地点和纬度/经度信息的 JSON 数据,我希望将其导入到我的数据库中。到目前为止,我已经编写了一个脚本将 JSON 格式化为 SQL 语句,这样我就可以使用大量 INSERT 语句导入它们。
但是当我尝试使用 ST_PointFromText('POINT(lon lat)') 语法时,我的“位置”字段(PointField)让我感到悲伤。具体来说:
错误:关系“finder_venue”的新行违反了检查约束“enforce_srid_location”
那么如何生成正确的 SRID?
或者,考虑到 Django 的轻松性,我不禁觉得我在这里犯下了纲领性的异端邪说。有人能指出我更明智的方向吗?
谢谢,
乔恩
PostgreSQL / Django / newbie here.
I've got a bunch of JSON data with venues and lat/long information, and I'm looking to import it into my database. So far I've fenagled a script to format my JSON into SQL statements, so I can import them with a slew of INSERT statements.
But my 'location' field (a PointField) is giving me grief when I try to use ST_PointFromText('POINT(lon lat)') syntax. Specifically:
ERROR: new row for relation "finder_venue" violates check constraint "enforce_srid_location"
So how do I generate a proper SRID?
Or, given Django's ease, I can't help but feel like I'm committing programmatic heresy here. Can someone point me in a more intelligent direction?
Thanks,
Jon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你想在 PostGIS 中设置 SRID,你可以这样做:
(4326 是这里的 SRID。)
对于 GeoDjango,你的模型将这样定义:
如果你实际上使用 4326,你可以省略它,因为那就是默认值。
然后,您将设置模型实例的
位置
,如下所示:If you want to set the SRID in PostGIS, you can do this:
(4326 is the SRID here.)
For GeoDjango, your model will be defined like this:
If you're actually using 4326, you can leave it out, as that's the default.
Then, you'll set the
location
of your model instances so: