2013-01-04 27 views
1

我正在開發一個JSP應用程序,該應用程序檢索許多要在地圖上顯示的多邊形。檢索Fusion Tables數據的問題 - Google Maps API

我會在告訴我的問題之前嘗試解釋應用程序的工作原理。

我的客戶需要在Google地圖上檢查其內部分區(一個地區是一組城市,這是一個多對多的關聯)。通過應用程序菜單加載文件,可以隨時更改領土 - 城市關係。今天,我們有35個領土和約10000個協會的領土 - 城市在系統中。

我有在Fusion Tables的城市形狀的多邊形,但是當我嘗試檢索形狀,我收到以下錯誤:

代碼加載多邊形的一個領域:

layer = new google.maps.FusionTablesLayer({ 
    query:{ 
     select: 'geometry', 
     from: {MYKEY}, 
     where: "NAME_CITY IN ("+listOfCities+")" 
    } 
}); 

錯誤:

Failed to load resource: the server responded with a status of 414 (Request-URI Too Large)

我正在尋找一種方式爲L長期以來,我一直試圖從Java中讀取KML文件,併爲每個城市發送一組座標,但HTML頁面在完成時就像300MB一樣,並且只是凍結了瀏覽器而沒有工作。所以Fusion Tables似乎是最好的方法。

我發現那裏的人都告訴使用POST方法來請求數據,因爲變量listOfCities的大小(某些地區有相關的約500個城市)的幾個職位,但他們從來沒有說該怎麼辦呢使用Google Maps API。

我該怎麼做?任何人有另一種方法來解決這個問題?

謝謝

+2

你能只需添加一個包含「地區」代碼的列,然後使用該列中相應的代碼查詢表中的記錄? – geocodezip

回答

2

您必須以某種方式簡化查詢。 POST不是一個選項,無法更改用於查詢的方法。

但是,這可能是一個可以開始的地方: 通過通過應用程序菜單加載文件,可隨時更改地區 - 城市關係。

除了在您的服務器上過濾城市和查詢城市,您可以在表格中添加另一列,在那裏存儲geocodezip建議的「關係」。

當「文件」上傳這可自動完成(在這裏你可以使用POST)

新的where子句將是簡單和短期現像如:territory=35

+0

感謝您的回答Dr. Molle,但是這種關係是多對多的,一些城市與多個領土相關聯,在這些情況下,您知道一種將其存儲在Fusion Tables中的方法嗎? – Diogo

+1

Fusion Tables支持LIKE,您可以存儲由某個分隔符分隔的地區列表。另一種選擇是爲每個地區創建列號 –

+0

感謝Dr. Molle的幫助,我將實施此方法。 – Diogo

相關問題