我使用的是Google Maps v3,我需要爲我的地圖添加不同區域的邊框線。例如,在Google地圖中,所有美國國家邊界都會自動顯示。我需要爲不同的國家做同樣的事情。例如,顯示英格蘭的所有城市邊界。 我如何使用Google Maps API v3做到這一點?如何使用Google地圖顯示國家邊界,美國州邊界和城市邊界?
問候, 貝納
我使用的是Google Maps v3,我需要爲我的地圖添加不同區域的邊框線。例如,在Google地圖中,所有美國國家邊界都會自動顯示。我需要爲不同的國家做同樣的事情。例如,顯示英格蘭的所有城市邊界。 我如何使用Google Maps API v3做到這一點?如何使用Google地圖顯示國家邊界,美國州邊界和城市邊界?
問候, 貝納
你可以使用在谷歌地圖提供的KML support,通過審查KML Introduction瞭解更多信息,然後創建V3 KmlLayer。緯度和經度座標構成的國家,州和城市的界限沒有提供出的現成的谷歌地圖,但一些支持數據是可用的:
這些數據中的大部分還可以公開地作爲Fusion Tables進行動態檢索,但在這種情況下,您將使用共享的公共數據。我將KML用於這種類型的事情,因爲我想擁有數據的內部副本,保持對數據的完全控制權,並且有能力進行自己的更改或更新。
谷歌已經開始以挑選顏色突出顯示搜索區域。
它在API中不可用。
(它可能會在將來推出。谷歌地圖的功能也遷移到API,但谷歌不作事先公告)
你會需要找到城市邊界和自己劃清界線,通過疊加。
我發現很難在互聯網上找到邊界/邊界數據 - 即使是像加拿大各省這樣的着名邊界。嘗試使用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";
}
你究竟想達到什麼目的?你需要添加什麼樣的線? 「分裂」一個國家或一個城市意味着什麼?如果我們無法弄清楚你想達到的目標,我們無法幫助你。 –
如果我在美國地圖上查看它根據不同的州例如Utha,Nevada,Portland劃分,每個州在線(邊界)都是翹曲的。我想要達到同樣的結果,但對於國家,例如我想劃分英格蘭所有城市,所以我對此有兩個問題: 1.如何將線條添加到國家/地區的不同城市,以便每個城市都有邊框 2.我如何能找到API3國家的所有城市? – user1365697