2011-11-26 59 views
4

我試圖建立我的第一個GIS應用與GeoDjango內置和我有幾個問題之前,我開始:想知道GeoDjango內置和地圖服務

一:到底是GeoDjango內置了關於谷歌地圖是什麼?僅僅是處理信息,然後傳遞給像Google Maps這樣的服務?

如果這是真的,那麼使用GeoDjango相對於簡單地在數據庫中存儲緯度/經度長點並將它們傳遞給Google地圖有什麼好處?

假設以上所有情況都是如此,如果我突然想要更改地圖提供者(從Google到Bing,讓我們說),GeoDjango是否使這更容易和更模塊化?

我在理解GeoDjango和地圖服務之間的關係時遇到了一些麻煩,如果有人能夠用一些例子來說明這一點,那就太棒了。

Next:如果我在GeoDjango中有一個我想要整合的項目,那麼我應該將所有內容移到PostgreSQL上,因爲GeoDjango不能很好地與MySQL一起工作?我應該如何處理數據庫?

回答

8

正如documentation說:

GeoDjango內置Django的一個插件,把它變成一個世界級的 地理Web框架。 GeoDjango努力使其像 一樣簡單,可以創建地理Web應用程序,例如基於位置的服務 。一些功能包括:

  • 用於OGC幾何的Django模型字段。
  • 擴展Django的ORM查詢和操作空間數據。
  • 用於GIS幾何操作和數據格式的鬆散耦合的高級Python接口。
  • 編輯管理中的幾何字段。

您可以通過Google Maps JavaScript API輕鬆地將GeoDjango信息處理到Google地圖。 GeoDjango的優點是處理幾何類型信息的特殊工具。例如,這樣的種fields

  • GeometryField
  • PointField
  • LineStringField
  • PolygonField
  • MultiPointField
  • MultiLineStringField
  • MultiPolygonField
  • GeometryCollectionField

和基礎水平spacial databasesgeospacial libraries整合:

  • GEOS
  • PROJ.4
  • GDAL
  • GeoIP的
  • PostGIS的
  • SpatiaLite

如果您希望將來能夠更改地圖提供程序,建議使用前端(地圖) - 後端(GeoDjango)架構。在這種情況下,您可以輕鬆更改前端或在不同地圖之間切換。

我建議遷移到postgres,因爲它有各種工具,如GEOS,PROJ.4,PostGIS庫可能對處理空間數據有用。如文檔中所述,MySQL具有有限的功能。

+0

謝謝,這清理了我的東西。 – arooo

+0

據我所知Google Maps是最好的。而且我需要使用long/lat值來指出地圖中的特定位置。這可以很容易地用CharFields來完成。我不認爲我會在前端使用另一張地圖。這是否意味着我可以沒有GeoDjango? – MiniGunnR

+0

如果您只需要存儲點座標並在地圖上顯示它們,則可以使用CharField。如果您需要計算點之間的距離,那麼我建議您使用特殊工具 – ramusus