【问题标题】:How do I move marker to the street in front of address如何将标记移动到地址前面的街道
【发布时间】:2012-08-16 19:57:31
【问题描述】:

我正在使用谷歌地理编码,对于很多农村地址,标记被放置在地段中间。我需要的是放置在街道上的地理编码地址前面的标记。

这是我目前用于测试的链接。 http://www.commsoft.net/maps/index.html

任何建议将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    您可以使用 Google Maps API StreetViewService 来获取您需要的街道位置。

    Google Maps API - Directly Accessing Street View Data

    1. 使用地理编码器获取 latLng 位置
    2. 将该位置、搜索半径和回调函数发送到街景服务:

      var streetViewService = new google.maps.StreetViewService(); streetViewService.getPanoramaByLocation(location, searchRadius, callbackFunction);

    3. streetViewService 将使用距您所在位置最近的街景照片进行响应。在您的回调函数中,callbackFunction(data, status)data.location.latLng 将包含拍摄街景照片的街道位置。

    4. 使用该位置作为标记。

    这不是一个完美的解决方案,但它可能是您能做的最好的,除了将您自己的街道位置存储在数据库中。主要缺点是,为了使其工作,地址必须具有街景图像。因此,如果您主要关心农村地址,它可能不适合您。

    【讨论】:

    • 感谢您的回复。我会试一试,让你知道我是怎么做出来的。
    【解决方案2】:
    1. 在 Google Maps API 地图上显示多个地址的最佳方法是离线对其进行地理编码并将坐标存储在您的数据库中(或者您从哪里获取地址)。如果您要使用地理编码器或路线服务显示超过 10-15 个标记,您将遇到配额/速率限制。
    2. 如果您离线对地址进行地理编码,如果您不喜欢地理编码器返回的值,则可以修复它们。
    3. 以编程方式获取最近地址的街道上的坐标的一个选项是使用方向服务(从感兴趣的地址获取到自身的方向,应该导致零长度的路线在道路上具有相同的起点和终点离地址最近的点)。

    example using your addresses

    【讨论】:

      猜你喜欢
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多