关于 App 的 Gecoding (经度纬度和地址转换)的实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kenyth
V2EX    iPhone

关于 App 的 Gecoding (经度纬度和地址转换)的实现

  •  
  •   Kenyth 2010-08-08 18:10:44 +08:00 15883 次点击
    这是一个创建于 5621 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有人知道常见的 iPhone App 中问你要位置然后可以直接显示地址给你看是怎么实现的吗?例如各种twitter客户端,4sq,国内的大众点评和丁丁地图的iPhone App等等。

    也就是把地址(例如街道、路名等)转为经度纬度的过程,或者反向的过程。

    我现在知道的有 Google Maps 的 Geocoding API 可以办到,但是和 Terms of Service 好像有冲突:
    “You may use the HTTP geocoder to geocode addresses outside of yur Google Maps API application so that they may be cached and later displayed using one of the Google Maps APIs, but locations obtained using the Geocoding Web Service may not be used by any other application, distributed by other means, or resold. ”
    http://code.google.com/intl/en/apis/maps/faq.html#geocoder_exists

    谁知道还有没有其他的办法可以做这件事情的,特别是中文地址的支持。

    另外,如果我要在自己的服务器端实现这个 (Google API 有 25000的限制),有什么方案么有?
    14 条回复    1970-01-01 08:00:00 +08:00
    kailuo
        1
    kailuo  
       2010-08-08 18:36:47 +08:00
    Kenyth
        2
    Kenyth  
    OP
       2010-08-08 18:43:25 +08:00
    @kailuo 那是获得的经纬度,不是可读的地址名称,例如北京 海淀区 学院路 xx号。
    Livid
        3
    Livid  
    MOD
    PRO
       2010-08-08 18:49:52 +08:00
    在你的电脑上装上 Charles,然后设置 iPhone 的 HTTP Proxy 到你的电脑,然后运行你好奇的那个程序,它发出的所有网络请求就被捕获下来。
    kailuo
        4
    kailuo  
       2010-08-08 18:52:54 +08:00
    好像 Core Location 是获取用户位置的

    以前也考虑过这个问题,刚才顺便查了一下,的确需要 API 支持 :( 不过好消息是似乎 MicroSoft 以及 Yahoo! 也都有类似服务。

    可以参考下这个:
    http://blog.sallarp.com/ipad-iphone-forward-geocoding-api-google/
    kailuo
        5
    kailuo  
       2010-08-08 18:54:05 +08:00
    @Kenyth 嗯,还没有具体用过。现在正好提前看看先 :)
    Kenyth
        6
    Kenyth  
    OP
       2010-08-08 18:59:55 +08:00
    @Livid 这是我最希望看到的答案:-),以前看过这东西一时没想起来,正在尝试。
    Kenyth
        7
    Kenyth  
    OP
       2010-08-08 19:30:31 +08:00
    那个工具太棒了,可是免费试用只有1个月。。。

    刚测试了国内的两个(包括号称做地图的丁丁地图)全部是用的 Google 的 API ,还不是 .cn 的,全不是 .com 的,看来我都高估了别人的实力:-)

    大众点评的 app 用的是 http://maps.google.com/maps/geo

    丁丁地图用的是 http://maps.google.com/maps/api/gecode 参数里面连 API key 都没有带 (我也搞不清这个 key 什么时候是起作用的)
    Livid
        8
    Livid  
    MOD
    PRO
       2010-08-08 19:37:26 +08:00
    v3 版的 API 推出后不强制要求 API KEY。
    Kenyth
        9
    Kenyth  
    OP
       2010-08-08 19:42:57 +08:00
    @Livid 这样的话 Google 宣称的 terms of service 就不能从技术层面限制了,应该是商业层面的。依据我的理解,他们这种使用可能全部违反了 ToS 。
    Livid
        10
    Livid  
    MOD
    PRO
       2010-08-08 19:45:49 +08:00
    @Kenyth 对于一个每天几十亿次请求的 API 来说,他们可能还真的不会太在乎一些细小的 violation。先用最简单的办法把自己想要的功能做出来吧。
    Kenyth
        11
    Kenyth  
    OP
       2010-08-08 19:50:21 +08:00
    @Livid 正解! 谢了:-)
    doskoi
        12
    doskoi  
       2010-08-08 21:19:07 +08:00
    CoreLocation 获得的经纬度 SDK还提供Reverse Geocoding
    就能获得可读的地址了...查文档吧~
    doskoi
        13
    doskoi  
       2010-08-08 21:20:16 +08:00
    MKReverseGeocoder & MKReverseGeocoderDelegate
    easy for use
    jorakura
        14
    jorakura  
       2010-08-13 15:35:55 +08:00
    收藏一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3261 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:50 PVG 12:50 LAX 20:50 JFK 23:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86