0

链接已删除

这是我的网站。我正在努力,以便您可以在搜索输入字段中输入位置,然后查看距离餐厅 xx 公里。

现在我得到了几乎所有的工作。如果你看到源代码,你可以看到它是如何工作的。它显示地址(您搜索的内容)。然后显示地址将其转换为 lat/lng 线,并将其传递给 computeRestaurants() 计算您输入的位置与餐馆之间的距离。

不知何故,当我运行时:

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

在函数之外,它可以工作并给出正确的值。

但是当我这样做时:

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

您可以看到它返回 NaN。在 showAddress() 内部,它执行的命令与我在 computeRestaurants( 点) 上面写的命令相同

那么为什么它不能正常工作呢?

point在 showAddress 中是:(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 回答