0

リンクを削除しました

これは私のサイトです。検索入力フィールドに場所を入力すると、レストランから xx km の場所が表示されるように取り組んでいます。

これで、ほとんどすべてが機能するようになりました。ソースコードを見れば、それがどのように機能するかがわかります。アドレス(検索したもの)を表示します。次に、住所を表示して緯度/経度コードにし、入力した場所とレストランの間の距離を計算する computeRestaurants() に渡します。

どういうわけか、私が実行すると:

computeRestaurants(new google.maps.LatLng(55.662133, 12.508028)); 

関数の外では、それは機能し、正しい値を提供します。

しかし、私がするとき:

showAddress('Valby'); // (like in the source code)

NaN を返すことがわかります。そして、showAddress() 内で、上記の computeRestaurants( the point ) と同じコマンドを実行します。

では、なぜ正しく機能しないのでしょうか。

pointin showAddress is:(55.662133, 12.508028)すでに LatLng コードに変換されているため、new google.maps.latlng(...

今の私の唯一の賭けは、括弧 () ??

4

1 に答える 1

1

showAddress を次のように置き換えます。

var geocoder;
function showAddress(address)
{
  if (typeof(geocoder) == 'undefined') geocoder = new google.maps.Geocoder();

  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      computeRestaurants(results[0].geometry.location);
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

v2 と v3 の API を混在させて使用していますが、それが問題です。

于 2011-10-23T17:48:19.200 に答える