Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 想知道GeoDjango和地图服务吗_Python_Database_Django_Google Maps_Geodjango - Fatal编程技术网

Python 想知道GeoDjango和地图服务吗

Python 想知道GeoDjango和地图服务吗,python,database,django,google-maps,geodjango,Python,Database,Django,Google Maps,Geodjango,我正在尝试使用GeoDjango构建我的第一个GIS应用程序,在开始之前我有几个问题: 第一:GeoDjango与谷歌地图的关系到底是什么?它仅仅是为了处理信息,然后将信息传递给像谷歌地图这样的服务吗 如果这是真的,那么使用GeoDjango与简单地将lat/long点存储在数据库中并将其传递给谷歌地图相比,有什么好处 假设以上所有这些都是真的,如果我突然想改变地图提供商(比如从谷歌到必应),GeoDjango会让这变得更简单、更模块化吗 我在理解GeoDjango和地图服务之间的关系方面有点困

我正在尝试使用GeoDjango构建我的第一个GIS应用程序,在开始之前我有几个问题:

第一:GeoDjango与谷歌地图的关系到底是什么?它仅仅是为了处理信息,然后将信息传递给像谷歌地图这样的服务吗

如果这是真的,那么使用GeoDjango与简单地将lat/long点存储在数据库中并将其传递给谷歌地图相比,有什么好处

假设以上所有这些都是真的,如果我突然想改变地图提供商(比如从谷歌到必应),GeoDjango会让这变得更简单、更模块化吗

我在理解GeoDjango和地图服务之间的关系方面有点困难,如果有人能用一些例子为我澄清这一点,那就太棒了

下一步:如果我在GeoDjango中有一个我想集成的使用MySQL的现有项目,我是否应该将所有内容都转移到PostgreSQL中,因为GeoDjango与MySQL不兼容?在数据库方面我应该做些什么?

如中所述:

GeoDjango是Django的一个附加组件,它将Django打造成世界级的应用程序 地理网络框架。GeoDjango努力使其尽可能简单 可以创建地理Web应用程序,如基于位置的 服务。一些特点包括:

  • OGC几何图形的Django模型字段
  • Django的ORM的扩展,用于查询和操作空间数据
  • 用于GIS几何操作和数据格式的松耦合高级Python接口
  • 编辑管理员中的几何体字段
您可以通过谷歌地图Javascript API轻松地将GeoDjango信息处理到谷歌地图。 GeoDjango的优势在于,它是处理几何类型信息的专用工具。例如:

  • 几何场
  • 点域
  • LineStringField
  • 多角场
  • 多点场
  • 多列场
  • 多角形场
  • 几何集合场
与和的基础级集成:

  • 地球观测系统
  • 项目4
  • 格达尔
  • GeoIP
  • 波斯特吉斯
  • 空间岩
如果您想在将来保持更改地图提供程序的能力,建议使用前端(map)-后端(GeoDjango)体系结构。在这种情况下,您可以轻松更改前端或在不同地图之间切换


我还建议迁移到postgres,因为它有各种工具,如GEOS、PROJ.4、PostGIS库,这些工具可能对处理空间数据有用。正如文档中所述,MySQL的功能有限。

据我所知,谷歌地图是最好的。我需要使用long/lat值来指出地图中的特定位置。这可以很容易地用CharFields实现。我想我不会在前端使用另一张地图。这是否意味着我可以不用GeoDjango?如果你只需要存储点坐标并在地图上显示它们,你可以使用CharField。如果您需要计算点之间的距离,那么,我建议您使用专用工具