【问题标题】:How to prevent map marker from snapping to road如何防止地图标记捕捉到道路
【发布时间】:2012-05-28 13:06:12
【问题描述】:

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

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

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

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

}

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

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

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

    GeocodingService 需要地址或位置,但不是两者都

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

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

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

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

    【讨论】:

    • 肖恩说得对,你的代码有点像腰带和吊带。只需传递 latlng,标记就会停留在您想要的位置。
    猜你喜欢
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    相关资源
    最近更新 更多