2012-08-04 64 views
2

因此...我在需要座標以將標記設置到不同位置的項目中使用了地圖。有很多選項可供我獲取座標。在Django的javascript函數中獲取地圖座標的最快方法

  1. 將座標存儲在數據庫中,並使用django視圖使用ajax響應獲取和轉發座標到javascript函數。

  2. 將它存儲到python列表或字典中,並在需要時將該數據發送到該javascript func。

  3. 硬編碼HTML標記屬性中的座標並通過javascript獲取它們,然後設置標記。

  4. 在django視圖中使用文件並通過文件I/O獲取數據並將其轉發給javascript函數。

我想知道這些技術是有效的約50組座標和哪一個會更充足,如果我的設置提高到約1000?

如果你有更好的方法來做到這一點......請分享.. 感謝

+0

這個地理數據可能會發生變化嗎?你的第三個選項表明你正在談論靜態數據? – 2012-08-04 10:00:15

+0

是的數據是靜態的...我有(位置+座標)約50個位置,我想顯示.. – 2012-08-05 04:04:46

回答

1

我認爲最好的辦法是將這些數據存儲在數據庫中,一對夫婦的原因:

  1. 您將能夠對這些數據執行一些查詢,例如「給我所有點在視口中」或「給我所有距離其他點5公里的點」 - 即使您不需要它現在它可能在未來非常有用,特別是如果你想到有大約1000點
  2. 有美妙的utils將數據庫中的座標保存在與Django很好集成的數據庫中 - 您絕對應該查看postgis和geodjango
  3. 您使用的是Django,因此您可能在數據庫中有其他數據,並且很高興在一個地方放置所有內容
  4. 除非您想要在地圖上顯示某種不太可能更改的靜態數據,否則將其保留在數據庫中的任何地方都是不妥當的。

如果由於某種原因,你不希望使用任何數據庫(即使你可以將這些數據總是存儲在使用SQLite的文件),你也可以嘗試將其存儲在一些Python對象,然後將它們發送到js的(所以第二個選項),第三個我認爲是最糟糕的 - 你不能使用JavaScript以外的數據進行任何操作,這將是很難閱讀或調試(例如語法錯誤)。

Hth

+0

第4,文件I/O呢? – 2012-08-05 09:40:55

+0

對於我來說,它與第二個選項幾乎相同 - 您可以將Python對象存儲在該文件中。我不認爲以另一種格式存儲它實際上是有意義的 - 對每一個請求都需要額外的不必要的解析。 – zeroos 2012-08-05 10:01:58

+0

好的..謝謝.. :) – 2012-08-05 10:58:43

相關問題