我正在尝试使用GeoDjango构建我的第一个GIS应用程序,在开始之前我有几个问题:
首先:GeoDjango与谷歌地图有什么关系?它只是处理信息,然后传递给谷歌地图等服务?
如果这是真的,那么使用GeoDjango与在数据库中存储纬度/经度并将其传递到Google地图的优势是什么?
假设上述所有情况都属实,如果我突然想要改变地图提供者(从谷歌到Bing,让我们说),GeoDjango是否会让这更容易,更模块化?
我在理解GeoDjango和地图服务之间的关系方面有点麻烦,如果有人可以通过一些例子为我澄清这一点,那就太棒了。
下一步:如果我在GeoDjango中有一个我希望集成的现有项目使用MySQL,我是否应该将所有内容移到PostgreSQL上,因为GeoDjango不能与MySQL一起使用?我应该怎么做数据库?
答案 0 :(得分:8)
正如documentation所说:
GeoDjango是Django的附加组件,将其变成世界级的 地理Web框架。 GeoDjango努力使它变得如此简单 可以创建地理Web应用程序,例如基于位置的应用程序 服务。一些功能包括:
- OGC几何的Django模型字段。
- 扩展Django的ORM以查询和处理空间数据。
- 用于GIS几何操作和数据格式的松散耦合的高级Python接口。
- 编辑admin中的几何字段。
您可以通过Google Maps Javascript API轻松处理GeoDjango信息到Google地图。 GeoDjango的优点是处理几何类型信息的特殊工具。例如fields:
这类与spacial databases和geospacial libraries进行基础级整合:
如果您希望将来能够更改地图提供程序,建议使用前端(地图) - 后端(GeoDjango)架构。在这种情况下,您可以轻松更改前端或在不同地图之间切换。
我建议也迁移到postgres,因为它有各种工具,如GEOS,PROJ.4,PostGIS库,可用于处理空间数据。 MySQL的功能有限,如文档中所述。