0

我的谷歌地图需要支持“越野”位置。

我想知道如何防止我的地图标记捕捉到道路。

地址是从输入字段传递的,而 lat 和 lng 是从标记的位置中提取的。

function geoCodeLocation(address, lat, lng) {
    geocoder.geocode( 
    { 
        "address" : address ? address : '', 
        "location" : new google.maps.LatLng(lat, lng) 
    },
     /* ... */

}
4

1 回答 1

3

您显示的代码非常少,所以我可能错过了重点,但地理编码通常会做以下两件事之一:

  1. 你有一个 LatLng,你需要地址
  2. 您有一个地址并且需要 LatLng

GeocodingService 需要地址或位置,但不能同时需要。

您的代码看起来总是希望有 LatLng 并且地址可能存在。如果您使用 LatLng 调用地理编码器,它将返回一个地址。在这种情况下,将标记附加到道路上是有道理的。

另一方面,如果你有一个地址,你返回的 LatLng 将基于地址,所以它会附加到道路上也是有道理的。

但是,如果您始终拥有 LatLng,为什么不直接使用 LatLng 创建标记并跳过地理编码调用(特别是因为您不希望标记出现在路上)?

如果我不正确,您能否在您的问题中添加更多细节?

于 2012-05-22T03:58:13.860 回答