2012-05-01 349 views
2

我使用的是Google Maps v3,我需要爲我的地圖添加不同區域的邊框線。例如,在Google地圖中,所有美國國家邊界都會自動顯示。我需要爲不同的國家做同樣的事情。例如,顯示英格蘭的所有城市邊界。 我如何使用Google Maps API v3做到這一點?如何使用Google地圖顯示國家邊界,美國州邊界和城市邊界?

問候, 貝納

+0

你究竟想達到什麼目的?你需要添加什麼樣的線? 「分裂」一個國家或一個城市意味着什麼?如果我們無法弄清楚你想達到的目標,我們無法幫助你。 –

+0

如果我在美國地圖上查看它根據不同的州例如Utha,Nevada,Portland劃分,每個州在線(邊界)都是翹曲的。我想要達到同樣的結果,但對於國家,例如我想劃分英格蘭所有城市,所以我對此有兩個問題: 1.如何將線條添加到國家/地區的不同城市,以便每個城市都有邊框 2.我如何能找到API3國家的所有城市? – user1365697

回答

6

你可以使用在谷歌地圖提供的KML support,通過審查KML Introduction瞭解更多信息,然後創建V3 KmlLayer。緯度和經度座標構成的國家,州和城市的界限沒有提供出的現成的谷歌地圖,但一些支持數據是可用的:

  1. World Countries的KML作爲創建瓦列裏·Hronusov
  2. World Capitals的KML由Filipumme創建
  3. US States的KML可從谷歌
  4. 一些其他城市的數據是可用的下載,但是這往往是城市的城市,需要上網查詢找到

這些數據中的大部分還可以公開地作爲Fusion Tables進行動態檢索,但在這種情況下,您將使用共享的公共數據。我將KML用於這種類型的事情,因爲我想擁有數據的內部副本,保持對數據的完全控制權,並且有能力進行自己的更改或更新。

1

谷歌已經開始以挑選顏色突出顯示搜索區域。

它在API中不可用。

(它可能會在將來推出。谷歌地圖的功能也遷移到API,但谷歌不作事先公告)

你會需要找到城市邊界和自己劃清界線,通過疊加。

1

我發現很難在互聯網上找到邊界/邊界數據 - 即使是像加拿大各省這樣的着名邊界。嘗試使用Google Maps Engine。在地圖上繪製您的邊界作爲封閉的多邊形。然後點擊文件夾並執行「導出到KML」。格式是長,緯度,高度(有多個點)。這可以很容易地轉換爲其他格式。

例如,我用一個簡單的perl腳本將KML轉換爲我想要的格式。

while (<>) { 
chop; 
if (/<name>/) { 
    s/<name>//g; 
    s/<\/name>//g; 
    s/^\s+//; # strip whitespace 
    s/\s+$//; # strip whitespace 
    print "<state colour=\"red\" name=\"$_\">\n"; 
} 
if (/<coordinates/) { 
    s/<coordinates>//; 
    s/<\/coordinates>//; 
    s/,0.0\s*/,/g; 
    @array = split(","); 
    for ($i = 0; $i < @array; $i = $i + 2) { 
     if ($array[$i+1] && $array[$i]) { 
       $array[$i+1] =~ s/^\s+//; # strip whitespace 
       $array[$i+1] =~ s/\s+$//; # strip whitespace 
       $array[$i] =~ s/^\s+//; # strip whitespace 
       $array[$i] =~ s/\s+$//; # strip whitespace 
       print "<point lat=\"" . $array[$i+1] . "\" lng=\"" . $array[$i] . "\" \/>\n"; 

     } 
    } 
     print "</state>\n"; 
}