2009-04-27 7 views
2

私は初めてGoogle Mapsで遊んでいます。そして私は、マーカーがある場所に関するいくつかの情報を抜き出すために苦労しています。Google Mapsジオコーディングの問題

あなたに見せるための例を設定しました。この問題はAノードをドラッグすると発生します.getGeocode()は未定義です。

ドラッグするとノードから郵便番号、都市、住所を抽出する必要があります。

事前にhttp://dev.korebogen.dk/gmap/

感謝をご覧下さい!

更新

私は応答から私のコードを編集した - そして今、私は両方のアドレスアウトは(まだ私は別々の変数で情報を取得して、それを除去する必要がある)を得るが、いくつかの理由で私の方向出力が判明"0"と "1"(配列)になるようにするには、実際にジオコードを逆にする必要がありますか?

地図上でクリックイベントを作成してAとBのマーカーを追加することができます(読み込み時に方向がない場合)http://dev.korebogen.dk/gmap/が更新されました。

それはから来ている:あなたは一般的に「逆ジオコーディング」と呼ばれるアドレスに位置し、変換しようとしている

GEvent.addListener(newMarkers[i], "dragend", function() { 
      var points = []; 
      for (var i = 0; i < newMarkers.length; i++) { 
       var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x; 
       //points[i] = newMarkers[i].getLatLng(); 
       points.push(param); 
       if (!i) { 
        var x = new GClientGeocoder(); 

        x.getLocations(newMarkers[0].getLatLng(), function(addresses) { 
         if (addresses.Status.code == 200) { 
          var address = addresses.Placemark[0].address; 
          document.getElementById("start").innerHTML = address; 
         } 
        }); 

        x.getLocations(newMarkers[1].getLatLng(), function(addresses) { 
         if (addresses.Status.code == 200) { 
          var address = addresses.Placemark[0].address; 
          document.getElementById("end").innerHTML = address; 
         } 
        }); 
       } 
      } 
      gdir.loadFromWaypoints(points); 

     }); 
+0

loadFromWaypoints(name @ latitude、longitude)に渡す文字列配列の形式のため、方向名が0と1になります。名前が配列のインデックスを取得しています。コメントアウトされた行に戻っても問題ありません。 – RedBlueThing

答えて

1

を呼び出すべきです()。あなたはjavascriptのエラーで表情がログインする場合は、表示されます。

エラー:gdir.getRouteは(0).getStartGeocode()AddressDetails.Countryは未定義である

[OK]を、GoogleのDocumentionからの応答に応じてloadFromWaypointsとGClientGeodcoderは同一である必要があります。

私は幾分testing with your sampleのことをするの自由を取った、そして、応答が同じではないことが突然明らかになります。 http://www.cannonade.net/geo.jsを見ると、GClientGeocoderリクエストと最初のマーカーの応答が文字化けしていることがわかります。これらは非常に異なっています。あなたは未実装の結果を得るためのJavaScriptエラーが出ていないことを確認するためにあなたの応答を確認し

  • :だから、いくつかのことをする必要がある

    場合(それぞれの「AddressDetails」)

  • 完全なアドレス情報を取得するために、各マーカポイントに対してGClientGeocoderリクエストを実行します。私のサンプルは最初のマーカーのためにこれを行います。

+0

おっと、loadFromWaypoints結果を返しますが、これは素晴らしいですGClientGeocoder http://code.google.com/apis/maps/documentation/reference.html#GDirections.getGeocode – RedBlueThing

+0

一致言うDOCOへのリンクを忘れてしまいました!私はいくつかのコードを投稿する必要がありますので、私の更新されたポストをご覧ください:) –

1

:これは、更新された部分である

var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x; 

例コードhereを参照してください。

要するに

、代わりにgetGeocodeを呼び出す、あなたはここでの問題は、あなたが戻ってあなたloadFromWaypointsリクエストから取得しているオブジェクトは、あなたがonGDirectionsLoadに求めているすべてのメンバーが取り込まれていないということですGClientGeocoder.getLocations

+0

スーパー!正しい方向に私を得ました! :-D –

関連する問題