如何将标记移动到地址前的街道

时间:2012-08-16 19:57:31

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

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

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

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

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

Google Maps API - Directly Accessing Street View Data

  1. 使用Geocoder
  2. 获取latLng位置
  3. 将该位置,搜索范围和回调函数发送到街景服务:

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

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

  5. 将该位置用于标记。
  6. 这不是一个完美的解决方案,但它可能是您可以做的最好的,而不是将您自己的街道位置存储在数据库中。主要缺点是,为了使其工作,地址必须具有街景图像。因此,如果您主要关注农村地址,那么它可能对您不起作用。

答案 1 :(得分:0)

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