Firefly开源社区

标题: 【GoFast】4.在线地图功能的调用 [打印本页]

作者: tjCFeng    时间: 2015-8-10 20:16
标题: 【GoFast】4.在线地图功能的调用
    上一次实现了NM0183数据的解析,可以得到经纬度、时间、速度、方向等定位的信息,不过得到的经纬度不是给人看的。人能理解的东西是位置名称而不是数据,所以还需要把经度、纬度转换为省、市、道路名称之类的东西才行。
    不过要转换成这样的数据,需要有庞大的数据库来支持,而且还需要不断地更新、扩展、修改,所以这个数据库自己是实现不了了。但是可以借助免费的在线地图来完成,比如百度、谷歌等都提供这样的功能。当然在国内,百度比谷歌要好一些。

    回到程序,在import 了"github.com/tjCFeng/GoFast/DDNS"之后就可以调用封装好的解析程序了。
    例如在Test.go示例程序中有这样一段


    这个就是调用百度地图转换经纬度到地名的程序。

    使用之前需要在百度中注册一个免费的帐号,获得一个Token。每个百度的功能都需要给出这个Token才能完成。
    程序的第一行是创建这个类的实例,同时将这个Token当作参数赋值。

    第二行是转换真实的经纬度坐标为百度地图偏移计算后的坐标。因为国家有规定,所有的在线地图必须做偏移,而且这个偏移度不是线性的,每个地区都是不一样的,所以要得到百度的偏移就要调用百度给出的接口。
    这个第二行就是调用转换的功能函数,随便找个xxx.xxxxxxx度的经纬度,得到计算后的经纬度存在临时变量X, Y中,下面要用。


    最主要的就是Location这个函数了,把计算后的经纬度赋进去,得到的是网站返回的XML或Json数据,再经过解析函数直接返回地址,可以给用户显示了。


    最后附上这段解析程序


    用golang来实现真的很简单。

作者: 暴走的阿Sai    时间: 2015-8-11 09:23
看起来go语言还是很方便来开发




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1