我正在构建我的第一个基于Django的应用程序,它正在进行中 到目前为止还不错。其中一个目标是允许用户发布 信息(文字,图片,视频)和应用程序能够 自动检测他们发布此信息的位置 (即,从浏览器中提取位置信息)。那么理想的数据就是这样 以后可以过滤,例如查看内部发布的帖子 一个特定的半径。
我一直在阅读有关GeoDjango的内容,听起来很有趣, 如果可能比这个项目的要求更复杂。查询方面似乎很有希望 不过,一位同事提出了一切可以使用的方法 GeoDjango同样有效地使用Google Maps API JavaScript或JQuery以获得正确的坐标。
基本上,我希望看看GeoDjango会带来哪些好处 这个相当简单的项目仅使用Google Maps API。如果我已经 在基本的Django开始了一个项目;正在整合GeoDjango 有问题?我仍然试图掌握Django和。的基础知识 冒险进入GeoDjango可能对新手开发者来说太过分了。或不。
有任何见解。
答案 0 :(得分:3)
要准确查找某个位置的给定半径内的地理位置信息,您需要计算地理位置之间的距离。计算不是微不足道的。引用Django docs(带有较小的语法修正):
使用空间数据进行距离计算很棘手,因为, 不幸的是,地球并不平坦。
幸运的是,使用GeoDjango隐藏了这种复杂性。距离查询非常简单:
qs = SouthTexasCity.objects.filter(point__distance_lte=(pnt, 7000))
虽然可以使用JavaScript / JQuery对此逻辑进行编程,但我没有理由因为您已经在使用Django。除非你是:
无法使用空间数据库。 GeoDjango distance queries仅在您使用PostGIS,Oracle或SpatiaLite作为数据库时才可用。 (即MySQL不支持距离查询)
无法安装GeoDjango所依赖的geospatial libraries。