新手问题 用什么方法输入一个地址,然后计算出坐标呢?

stephen · 2015年05月06日 · 最后由 stephen 回复于 2015年05月06日 · 2487 次阅读

现在想帮商家的店铺定位,商家地址目前是在后台直接文字输入的。 用什么方法可以在输入一个地址,保存后,再计算出坐标呢? 方法一:直接输入名字,然后在那些地图 API 检索,好像这样准确率应该好低! 方法二:直接用地图选择,这样好像不是很友好!

请教大家,这个需求怎么解?

百度地图 API 貌似有这个功能

https://github.com/alexreisner/geocoder https://github.com/rgeo/activerecord-postgis-adapter

class Location < ActiveRecord::Base
  has_many :member_locations
  has_many :members, :through => :member_locations

  GEO_FACTORY = RGeo::Geographic.spherical_factory(:srid => 4326)
  set_rgeo_factory_for_column :coordinates, GEO_FACTORY

  geocoded_by :name do |location, results|
    result = results.first
    location.coordinates = GEO_FACTORY.point(result.latitude, result.longitude) if result
  end
end

给个输入框输入地址,下面百度地图有可以选择位置的,用户可以微调点下,以这个为准保存经纬度数据

做过类似的,输入 POI 的名字,用地图 api 搜索出相关的地点,显示在地图上,用户点击具体点,如果确认无误,经纬度入库既可以。

@stephen 最好是用百度,高德这些地图服务提供的 api

用坐标你会踩坑的,详情见 http://baike.baidu.com/view/3163334.htm?fromTaglist http://www.zhihu.com/question/20155929

目前就用是百度地图提供的 api 来获取经纬度,不过暂时没 @quakewang 实现的这么好,就直接传地址过去返回经纬度了!

@quakewang 你的代码有开源吗?想参考下!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号