2

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

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

任何建议将不胜感激。

4

2 回答 2

1

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

Google Maps API - 直接访问街景数据

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

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

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

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

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

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

使用您的地址的示例

于 2012-08-16T22:10:11.827 回答