2012-04-27 10 views
0

Google Maps JavaScript APIを使用して、複数の測地線ペアから複数の測地線ポリラインを描画しようとしています。私がここで探しているものの98%を見つけましたが(http://stackoverflow.com/questions/2994424/google-maps-geocoding-address-to-glatlng)、追加ポイントを追加する方法は分かりません追加回線(シカゴ、米国、ロサンゼルス、米国間の線も表示しています)。誰もが提供できるお手伝いをありがとう。Googleマップジオコーディング複数行

答えて

3

新しいアップデートでは、この1つは目的地のエンコーディングを別の関数に置き、各ジオコーディングの呼び出しを個別に行います。コールバックプロシージャをネストしようとするよりはるかにスケーラブルでなければなりません。

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps API Geocoding Demo</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 1280px; height: 1024px;"></div> 

    <script type="text/javascript"> 
//add locations 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 2, 
     center: new google.maps.LatLng(35.00, -25.00), 
     mapTypeId: google.maps.MapTypeId.TERRAIN 
    }); 

    var address1 = '60033'; 

    var gc = new google.maps.Geocoder(); 
    gc.geocode({'address': address1}, function (res1, status) { 

     var hub = res1[0].geometry.location; 
     new google.maps.Marker({ 
      position: res1[0].geometry.location, 
      map: map 
      }); 

     geocodeLine(hub, '44145'); 
     geocodeLine(hub, '03103'); 
     geocodeLine(hub, '30236'); 
     geocodeLine(hub, '18106'); 
     geocodeLine(hub, '64147'); 
     geocodeLine(hub, '86401'); 
     geocodeLine(hub, '75110'); 
     geocodeLine(hub, '56001'); 
     geocodeLine(hub, '80239'); 
     geocodeLine(hub, '95776'); 
    }); 

    function geocodeLine(hub, address) 
    { 
     var gc = new google.maps.Geocoder(); 

     gc.geocode({'address': address}, function (res, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 

       new google.maps.Marker({ 
       position: res[0].geometry.location, 
       map: map 
       }); 

       new google.maps.Polyline({ 
       path: [ 
        hub, 
        res[0].geometry.location 
       ], 
       strokeColor: '#FF0000', 
       geodesic: true, 
       map: map 
       }); 
      } 
     }); 
    } 
    </script> 
</body> 
</html> 
+0

ご回答ありがとうございます。送信した例の唯一の問題は、すべてのアドレスを線形に処理していることです。それらをそれぞれユニークにする方法はありますか?例えば、ロンドンからニューヨークへの1つのラインと、シカゴからLAへの1つのライン。このコードは、ロンドンからニューヨークからシカゴ、LAまで生成しています。もし私がニューヨークをシカゴの足にしたくないのであれば?再び、TONに感謝します! –

+0

この場合、ポリラインは連続線を表し、2本の線を持つため、2つのポリラインを作成する必要があるため、複数のポリラインを作成する必要があります。上記の答えに私が何を意味しているかを示す例を置いた。 – javram

+0

あなたは男です!すべての助けをありがとう。もう一つの簡単な質問です。私はこれを私のニーズに合わせてコーディングしましたが、あまりにも多くのポイントを追加すると少し壁にぶち当たっているようです。あなたがhttp://www.maptest.freehosting.com/chi.htmlを見ると、もう一つのポイントを追加する必要があることを除いて、私が作ろうとしている地図を作った。しかし、私が12番目のポイントを追加しようとするとうまくいかない。これを引き起こす原因は何ですか?それはGoogleのものか、スクリプトのことか、ユーザーのエラー(私)ですか?ありがとう。 –

関連する問題