4

Google Maps v3を使用していますが、地図にさまざまなエリアの境界線を追加する必要があります。たとえば、Googleマップでは、すべての米国の州の境界線が自動的に表示されます。私はさまざまな国で同じことをする必要があります。たとえば、イギリスのすべての都市の境界を表示します。Google Maps API v3でこれを行うにはどうすればよいですか?

よろしく、ヨッシ

4

3 に答える 3

7

Googleマップで提供されているKMLサポートを使用し、 KMLの概要を確認して詳細を確認してから、 v3KmlLayerを作成できます。国、州、および都市の境界を構成するLat-Lng座標は、Googleマップですぐに提供されるわけではありませんが、いくつかのサポートデータが利用可能です。

  1. ValeryHronusovによって作成された世界の国々のKML
  2. Filipummeによって作成された世界の首都のKML
  3. 米国のKMLはGoogleからダウンロードできます
  4. いくつかの追加の都市データが利用可能ですが、それは多くの場合都市ごとであり、見つけるにはオンライン検索が必要です

このデータの多くは、 Fusion Tablesとして動的検索に公開されていますが、その場合は、共有された公開データを使用します。この種のことにはKMLを使用します。これは、データの内部コピーを作成し、データを完全に制御し、独自の変更や更新を行うことができるようにするためです。

于 2012-05-02T13:01:44.567 に答える
1

Googleは、検索領域をピックカラーで強調表示し始めました。

APIでは使用できません。

(将来的に利用可能になる可能性があります。Googleマップの機能はAPIに移行されますが、Googleは事前に発表しません)

オーバーレイを使用して、都市の境界を見つけ、自分で線を引く必要があります。

于 2013-07-05T06:41:04.457 に答える
1

カナダの州のような有名な境界線であっても、インターネット上で境界線/境界線のデータを見つけるのは難しいと感じました。GoogleMapsEngineを使用してみてください。マップ上に閉じたポリゴンとして境界線を描画します。次にフォルダをクリックして、「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";
}
于 2013-09-10T19:28:32.887 に答える