0

逆ジオコーディング用に次のコードを見つけました。

var point = new GLatLng (lat[1],long[1]);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) { alert (lat[1]+' '+long[1]+' '+result.address); });

しかし、result.address が「未定義」であるというアラートが表示されます。アイデアはありますか?何が問題なのですか?


編集:うまくいきました、ありがとう。

4

2 に答える 2

3

「緯度」と「経度」の定義を含めることができますか? また、「long」は予約済みのキーワードであるため、タイプミスやバグである可能性があります。

また、少なくとも gmaps v2 json 形式で返される結果は、より複雑な構造を持ち、「result.address」には何も含まれません。テストしたとき、次のようなアドレスの 1 つにアクセスする必要がありました。

result.Placemark[0].address

http://code.google.com/apis/maps/documentation/geocoding/index.html#GeocodingResponsesをご覧ください

于 2010-04-19T13:33:23.230 に答える
1

このことresultから、関数に渡されていないか、オブジェクトではないことがわかります。

コールバック関数が受け取るパラメーターを確認する必要があります。ドキュメントの内容は次のとおりです。

この応答にはステータス コードが含まれ、成功した場合は 1 つ以上の Placemark オブジェクトが含まれます。

Firebug を使用している場合は、次の方法でコールバックに何が渡されているかを確認できます。

var point = new GLatLng (lat[1],long[1]);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) { 
    window.console.log(arguments);
    // Here you will see what arguments are passed and
    // decide what to do about them
});
于 2010-04-19T13:24:23.390 に答える