我在路轨中使用地理编码器来获取地址的经度和纬度,然后在OpenStreetMap中显示它们。
当我搜索旧地址时:
export PATH=$PATH_TO_DIR_WITH_EMBER_BIN:$PATH
我得到:
$PATH
Mount Curve Address Discrepancy
这些坐标可能相距一千英尺。 (参见图片。)根据Google Maps得出的准确坐标为[34.200503,-118.1310407]。
我尝试了另一个地址,但距离更远,也许一英里。 (1346 E Woodbury Rd,Pasadena,CA 91104)
我尝试了另一个地址,这几乎是错误的。 (922 E Brockton Ave,Redlands,CA 92374)
有人知道什么可能导致这些错误,以及如何始终如一地获得准确的结果吗?
答案 0 :(得分:0)
由于OSM / Nominatim的不准确性和/或局限性,我切换到了Google地图服务。在控制器的顶部,我添加了:
require 'google_maps_service'
在我的控制器的显示例程中,我最终得到了这个结果,它产生了准确的结果:
source = Property.find(params[:id])
@property = PropertyDecorator.new(source)
gmaps = GoogleMapsService::Client.new(key: '[removed, put in your own key here]')
results = gmaps.geocode("#{@property.address1} #{@property.address2}")
if results[0] == nil
@lat = 0
@lng = 0
else
@lat = results[0][:geometry][:location][:lat]
@lng = results[0][:geometry][:location][:lng]
end