高德地图 订阅
高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。拥有导航电子地图甲级测绘资质、测绘航空摄影甲级资质和互联网地图服务甲级测绘资质“三甲”资质,其优质的电子地图数据库成为公司的核心竞争力。公司2010年登陆美国纳斯达克全球精选市场(NasdaqAMAP)。2014年12月,高德发布了“出行保障”计划,宣布此项服务长期有效,而且最高赔付额度提高到了1000元。 [1]  2018年6月5日 苹果在美国时间6月4日的苹果开发者大会上,发布了最新的iOS 12操作系统,CarPlay支持高德地图。 [2] 展开全文
高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。拥有导航电子地图甲级测绘资质、测绘航空摄影甲级资质和互联网地图服务甲级测绘资质“三甲”资质,其优质的电子地图数据库成为公司的核心竞争力。公司2010年登陆美国纳斯达克全球精选市场(NasdaqAMAP)。2014年12月,高德发布了“出行保障”计划,宣布此项服务长期有效,而且最高赔付额度提高到了1000元。 [1]  2018年6月5日 苹果在美国时间6月4日的苹果开发者大会上,发布了最新的iOS 12操作系统,CarPlay支持高德地图。 [2]
信息
软件大小
114.52MB [4]
开发商
高德软件有限公司 [5]
最新版本
10.05.2.2639 [4]
软件类型
旅游出行 [4]
中文名
高德地图 [3]
上市时间
2010年
官    网
http://ditu.amap.com/
外文名
Amap
高德地图功能
最新地图浏览器:最新矢量地图渲染,最高质量地图效果、最丰富数据信息、最快速操作体验、最节省数据流量。专业地图服务:实地采集、网络采集,行业领先。2000万POI信息,每年四次信息更新 高德地图(5张) 领先的地图渲染技术:性能提升10倍,所占空间降低80%,比传统地图软件节省流量超过90%专业在线导航功能:覆盖全国364个城市、全国道路里程352万公里在线导航功能:最新高德在线导航引擎,全程语音指引提示,完善偏航判定和偏航重导功能。AR虚拟实景:AR功能结合手机摄像头和用户位置、方向等信息,将信息点以更直观的方式展现给用户,为发现和目标地点指引丰富的出行查询功能:地名信息查询、分类信息查询、公交换乘、驾车路线规划、公交线路查询、位置收藏夹等丰富的基础地理信息查询工具。锁屏语音提示,即使你的手机在锁屏状态也能听到高德导航的语音提示,不用担心一直开着手机屏幕费电了。夜间导航HUD抬头提示,打开高德导航并开启HUD,把手机放到汽车挡风玻璃下,高德导航会把路线提示倒映到汽车挡风玻璃上,看起来特别方便,不用担心低头看手机影响驾驶了。动态导航交通路况实时播报智能计算到达目的地所需的时间避堵路线方案规划摄像头提醒离线下载2D、3D离线地图分地区下载地图包全国地图包、全国概要图地图搜索热门地点、线路搜索公交、自驾出行线路规划公交、火车、天气查询服务全新引擎最新3D版本,360度旋转视角矢量数据传送观看更流畅、更清晰兴趣点餐饮、住宿、优惠、演出、团购全覆盖海量兴趣点随意搜叫车服务2013年7月,高德地图更新,新增打车功能,综合快的打车、嘀嘀打车两家资源,覆盖80%市场份额。与阿里合作后,高德地图凭借高市场占有率,逐渐从单一地图向LBS工具箱转变。新版高德地图不仅增加了可预约的出租车数量,提高了打车效率,覆盖城市也扩展到26个。推出顺风车业务2018年3月27日,高德地图宣布推出顺风车业务,成都、武汉两地率先上线,同时开启北京、上海、广州、深圳、杭州等城市的车主招募,之后逐步向全国更多城市拓展。高德表示,该公益顺风车平台没有任何商业化目的,承诺对用户永不抽佣,也不会打补贴战,而是基于其长期积累的自驾出行用户及出行调度能力,在不增加城市道路压力的情况下,以科技手段提升运力,及社会出行效率,缓解城市交通拥堵。 [6]  高德智慧景区2.02018年11月1日,高德地图宣布,“一张地图游乌镇”正式上线,这是继高德智慧景区2.0建设的 “智能云台山”之后落地的人文智慧景区产品。 [7]  多方向实时路况2018年11月,高德地图宣布在业内首次推出“多方向实时路况”,它实现了路口处的车道级导航能力,能对路口车辆进行更精准引导,称每天可为用户出行节约近10万小时。 [8]  返程直通车2020年2月15日,高德地图上线“返程直通车”一站式服务,通过疫情信息提醒、防疫检查站及高速收费站实时车流信息、返程人员信息在线登记等多项功能,帮助自驾返程用户更好规划行程,减少返程途中在疫情检查站的停留和等待时间。 [9]  家人地图2020年7月14日,高德上线了“家人地图”功能。用户可以让家人随时看到彼此的位置,特别是针对空巢老人家庭,子女忙于工作,父母独自在家,老人有没有出门,外出去到了哪里,有没有偏离日常行动轨迹,都可以在地图上随时查看。 [10] 
收起全文
精华内容
参与话题
问答
  • 高德地图

    2017-12-29 19:11:13
    好吧今天解决了一个高德地图地图的小坑,其实也不是坑,反正解决了。 就是高德地图在不同色手机上加载 aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latlngBounds, 100)); 有的手机会无效,然后我还...

    好吧今天解决了一个高德地图地图的小坑,其实也不是坑,反正解决了。

    就是高德地图在不同色手机上加载

    aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latlngBounds, 100));
    有的手机会无效,然后我还以为是适配的问题,结果随便一搜,搜到了其他设置无效的情况,解决方法是在地图加载
    完毕的回调里设置就ok了

    展开全文
  •   大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己...

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://buwenbuhuo.blog.csdn.net/
    1

    PS:由于现在越来越多的人未经本人同意直接爬取博主本人文章,博主在此特别声明:未经本人允许,禁止转载!!!


    2


    推荐

    31
      ♥各位如果想要交流的话,可以加下QQ交流群:974178910,里面有各种你想要的学习资料。♥

      ♥欢迎大家关注公众号【不温卜火】,关注公众号即可以提前阅读又可以获取各种干货哦,同时公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍1份哟~♥
    30

    一、 分析网页结构

    以往几篇都是介绍的传统的静态界面的爬取,这次博主介绍一个爬取动态网页的超简单的一个小demo
    3
    说到动态网页,你对它了解多少呢?

    如果对动态网页不认识的童鞋,博主在此给出链接,可以看百度百科的详细解析动态网页_百度百科以及小马夫的静态页面和动态页面的区别

    4
    不要怪博主没有进行讲解,因为博主本人对与动态网页的概念也不是太过了解。等到博主整理好思绪的时候,博主会专门写一篇博文的 -。-

    简单来说,要获取静态网页的网页数据只需要给服务器发送该网页url地址就行,而动态网页的数据因为是存储在后端的数据库里。所以要获取动态网页的网页数据,我们需要向服务器发送请求文件的url地址,而不是该网页的url地址。

    🆗,下面开始进入正题。

    本篇博文就以高德地图展开:https://www.amap.com/
    5
    在打开后,我们发现有一堆div标签,但是并没有我们需要的数据,这个时候就可以判定其为动态网页,这个时候,我们就需要找接口
    8
    6
    点击网络标签,我们可以看到网页向服务器发送了很多请求,数据很多,找起来太费时间

    我们点击XHR分类,可以减少很多不必要的文件,省下很多时间。

    XHR类型即通过XMLHttpRequest方法发送的请求,它可以在后台与服务器交换数据,这意味着可以在不加载整个网页的情况下,对网页某部分的内容进行更新。也就是说,向数据库请求然后得到响应的数据是XHR类型的

    然后我们就可以在XHR类型下开始一个个找,找到了如下的数据
    7
    通过查看Headers获得URL
    9
    打开之后,我们发现其为近两天的天气情况。
    10

    打开后我们可以看到上面的情况,这是个json格式的文件。然后,它的数据信息是以字典的形式来保存的,而数据是都保存在“data”这个键值里面。

    🆗,找到了json数据,我们来对比下看是否是我们找的东西
    11
    通过对比,数据正好对应,那就说明咱们已经拿到数据了。

    二、拿到相关网址

    '''
    查询当前地点天气的url:https://www.amap.com/service/cityList?version=2020101417
    各城市对应code的url:https://www.amap.com/service/weather?adcode=410700
    
    备注:这两个url可以从Network中查看到
    '''
    

    12
    🆗,相关网址我们已经拿到了,下面就是具体的代码实现了。至于怎么实现,

    我们知道json数据可以使用response.json()转字典,然后操作字典。
    13

    三、代码实现

    知道了数据的位置后,我们开始来写代码。

    3.1 查询所有城市名称和编号

    先抓取网页,通过添加headers来伪装成浏览器来对数据库地址进行访问,防止被识别后拦截。

    url_city = "https://www.amap.com/service/cityList?version=202092419"
    
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    }
    
    city = []
    response = requests.get(url=url_city, headers=headers)
    content = response.json()
    print(content)
    

    14
    得到我们想要的数据之后,我们通过查找可以发现cityByLetter里的编号和名称是我们需要的,那么我们就可以盘它了。
    15

        if "data" in content:
            cityByLetter = content["data"]["cityByLetter"]
            for k,v in cityByLetter.items():
                city.extend(v)
        return city
    

    15

    3.2 根据编号查询天气

    得到了编号和名称,下面肯定就是查询天气呀!

    先来看接口
    16
    通过上图,可以确定最高温度,最低温度等内容。那么就以此来进行数据爬取。

    url_weather = "https://www.amap.com/service/weather?adcode={}"
    
    response = requests.get(url=url_weather.format(adcode), headers=headers)
    content = response.json()
    item["weather_name"] = content["data"]["data"][0]["forecast_data"][0]["weather_name"]
    item["min_temp"] = content["data"]["data"][0]["forecast_data"][0]["min_temp"]
    item["max_temp"] = content["data"]["data"][0]["forecast_data"][0]["max_temp"]
    print(item)
    

    17

    🆗,我们的设想已经实现了。
    20

    四、完整代码

    # encoding: utf-8
    '''
      @author 李华鑫
      @create 2020-10-06 19:46
      Mycsdn:https://buwenbuhuo.blog.csdn.net/
      @contact: 459804692@qq.com
      @software: Pycharm
      @file: 高德地图_每个城市的天气.py
      @Version:1.0
    
    '''
    import requests
    
    
    url_city = "https://www.amap.com/service/cityList?version=202092419"
    url_weather = "https://www.amap.com/service/weather?adcode={}"
    
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    }
    
    
    def get_city():
        """查询所有城市名称和编号"""
        city = []
        response = requests.get(url=url_city, headers=headers)
        content = response.json()
    
        if "data" in content:
            cityByLetter = content["data"]["cityByLetter"]
            for k, v in cityByLetter.items():
                city.extend(v)
        return city
    
    
    def get_weather(adcode, name):
        """根据编号查询天气"""
        item = {}
        item["adcode"] = str(adcode)
        item["name"] = name
    
        response = requests.get(url=url_weather.format(adcode), headers=headers)
        content = response.json()
        item["weather_name"] = content["data"]["data"][0]["forecast_data"][0]["weather_name"]
        item["min_temp"] = content["data"]["data"][0]["forecast_data"][0]["min_temp"]
        item["max_temp"] = content["data"]["data"][0]["forecast_data"][0]["max_temp"]
    
        return item
    
    
    def save(item):
        """保存"""
        print(item)
        with open("./weather.txt","a",encoding="utf-8") as file:
            file.write(",".join(item.values()))
            file.write("\n")
    
    
    if __name__ == '__main__':
        city_list = get_city()
        for city in city_list:
            item = get_weather(city["adcode"],city["name"])
            save(item)
    

    五、保存结果

    18
    19

    美好的日子总是短暂的,虽然还想继续与大家畅谈,但是本篇博文到此已经结束了,如果还嫌不够过瘾,不用担心,我们下篇见!


    21

      好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
      如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
      码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

    22
    23

    展开全文
  • 近期博主在做地理数据可视化方面的研究,pyecharts提供了较好的工具,里面提供了很多图形,尤其是Map和Geo这两种图,一种是地图,一种是地理信息图。pyecharts的基础还是echart,echart是百度地图开源的一个数据可视...

    引言

    近期博主在做地理数据可视化方面的研究,pyecharts提供了较好的工具,里面提供了很多图形,尤其是Map和Geo这两种图,一种是地图,一种是地理信息图。pyecharts的基础还是echart,echart是百度地图开源的一个数据可视化 JS 库,从我个人使用的情况来看,目前pyecharts(博主pyecharts版本是0.5.11)有这两个问题:

    • 地图精度不够。目前pyecharts提供的地图层级有世界地图、各个国家的地图、中国各省地图、中国各地市图、区县图,到区县后,就不再细分,如果我想看某条道路的具体信息,就难以实现。
    • 经纬度定位“不准确”。这不属于pyecharts是问题,应该属于百度地图在地理编码上的特点,当然,并不是说百度地图地理编码不准确,而是博主的目前在做的项目,地理位置都比较奇特,不管是BaiduMap还是AMap(高德地图)都很难定位到特别准确。由于pyecharts的底层地图是百度地图,所以看起来是pyecharts定位“不准确”。

    要解决第一个问题,就是说想要更高层级的地图,这个就需要换可视化包了,也就是说,将pyecharts改成具有其他更高层级地图的可视化包。博主使用的是folium,这个包也很强大,pyecharts的强大之处在与echart的可视化功能,folium则体现在地图及地图的扩展应用上。folium目前支持OpenStreetMap、AMap等几种地图,但不支持百度地图。一度吐血,为啥我用的这两个包底层地图就不能通用下。但其实也好,为了用好这两个包,博主对百度、高德这两大地图大佬的开发文档进行了研究,现在将二者地理编码的方式记录下来。
    开发环境:

    • Python3.7;
    • pyecharts0.5.11;
    • pycharm

    百度地图地理编码

    开发文档看这里,使用前需要去申请AK,同时最好申请开发者认证,能提升访问限制。开发文档其实写的很详细,无非是爬虫get和json解析那一套,我直接上代码。

    import json
    import pandas as pd
    import numpy as np
    from urllib.request import urlopen, quote
    import requests
    
    def Scene2CoordinateBaiduMap(filename):
        data = pd.read_csv(filename)
        result = []
        i = 1
        j = 1
        for k in data['地点']:
            address = quote(k)  # 1
            url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address + '&output=json&ak=yourAK'  # 2
            req = urlopen(url)
    
            res = req.read().decode()
            temp = json.loads(res)
            try:  # 3
                result.append(temp['result']['location'])
                print('catch %d \n' % i)
                i = i + 1
            except:
                result.append({'lat': 'null', 'lng': 'null'})
                print('fail %d \n' % j)
                j = j + 1
    
        print('成功定位%d个,成功率%.2f%%' % (i - 1, (i - 1) * 100 / (i + j - 2)))
    
        df = pd.DataFrame(result)
        df.to_csv('经纬度原始数据-百度地图.csv', index=False)
    
    if __name__ == '__main__':
        main()
    

    先看导入的包,访问百度地图API返回的都是json格式的数据,要对数据进行解析,自然少不了json包,pandas和numpy常规包,基本上很难不用到,后面两个是网页数据获取的包。高德地图地理编码也是这几个包,后面不再重复写。
    几点说明:
    #1quote函数是为了得到GBK的url编码,国内的网站编码都是GBK编码的;
    #2要把url里面的AK改成你自己申请的AK,而不是yourAK这个字符串;
    #3为啥要用try来处理,因为不是所有的地理编码都能成功,如果不用try处理,容易报错,程序会中断。
    这个函数写的很详细了,你提供一个CSV文件,其中一列命名为‘地点’,就能将你的所有填写的地点都能转换成经纬度,当然,也有不成功的,总体成功率在95%左右。总体来说,定位效果还是可以的,但是如果地点数据很多填写的不规范,地理编码虽然解析出经纬度,但很多都是有问题的,比如解析出来的点不在正确的地点,如下图。
    在这里插入图片描述
    这些点本来应该都出现在无锡市地图上,但还有不少点在无锡市外,也就是说,解析的不正确。问题出在哪里?博主又回过头去看文档,文档里说,请求的参数除了address外,还有city,也就是城市,这个参数不是必须要写的,如果是写了这个,会不会就正确了呢?于是,我找了一个落在无锡地图之外的点,将请求网址写成这样:

    http://api.map.baidu.com/geocoding/v3/?address=南湖大道双庆桥公交站前&city=无锡市&output=json&ak=您的ak&callback=showLocation
    

    返回的数据如下:

    showLocation&&showLocation({"status":0,"result":{"location":{"lng":120.31700801956372,"lat":31.532789952709309},"precise":0,"confidence":50,"comprehension":24,"level":"桥"}})
    

    根据经纬度去百度地图拾取坐标系统中看看,巧了,点还对了。。。
    博主懵逼了,上午的时候,明明是不对的,所以才想到要写一篇博客来解决这个问题,回过头来一想,因为我上午写的请求网址是这样的:

    http://api.map.baidu.com/geocoding/v3/?address=南湖大道双庆桥公交站前&city='无锡市'&output=json&ak=您的ak&callback=showLocation
    

    无锡市我打了引号,其实是没必要打引号的。。。
    在这里插入图片描述
    所以,实际上,在请求网址里面加上城市名,就能保证经纬度转换的时候,所有点都落在你想要的城市里面。。。
    持续吐血,这篇博客还要写吗,我上午已经按照我的解决思路,高德地图地理编码→高德地图转百度地图→pyecharts地点上图,这个套路,解析了3000+的地点。
    都写了3000多字了,还是继续写完吧。。。

    高德地图地理编码

    开发文档看这里
    ,技术细节与百度地图基本一致,请求格式上我换了一种写法,让读者可以更灵活的使用爬虫的技巧。
    上代码

    def Scene2CoordinateAMap(filename):
        data = pd.read_csv(filename)
        sgdd = data['事故地点'].tolist()
        geo = []
        key = 'yourKEY'
        base = 'https://restapi.amap.com/v3/geocode/geo'
        j = 1
        k = 1
        for i in range(len(sgdd)):
            parameters = {'address': sgdd[i], 'key': key, 'city':'无锡'}
            response = requests.get(base, parameters)
            answer = response.json()
            try:
                pos = answer['geocodes'][0]['location']
                pos = pos.split(',')
                pos[0], pos[1] = pos[1], pos[0]
                geo.append(pos)
                print('catch %d \n'%j)
                j = j + 1
            except:
                geo.append([ 'null','null'])
                print('fail %d \n'%k)
                k = k + 1
        points = pd.DataFrame(geo)
        points.to_csv('经纬度填充-高德地图.csv', index=False, columns = ['lng', 'lat'])
        print('成功定位%d个,成功率%.2f%%' % (j - 1, (j - 1) * 100 / (j + k - 2)))
    

    为啥我会写成‘无锡’,能理解了吧,我高德就是这么写的。。。
    可以看出来,和百度地图请求方式有一点不同,我用的是requests.get去请求的,其实网上更多的推荐是用这种方式去请求,而不是用urlopen,不过我个人习惯用urlopen,两者都行吧。

    高德地图经纬度转百度地图经纬度

    其实已经没啥必要写了,因为二者都差不多。
    文档看这里,上代码

    def AMap2BaiduMap(filename):
        data = pd.read_csv(filename)
        base = 'http://api.map.baidu.com/geoconv/v1/?coords='
        tail = '&from=3&to=5&ak=yourAK'
        transpos = []
        j = 1
        k = 1
        for i in range(len(data)):
            url = base + str(data.iloc[i]['lng_Amap']) + ',' + str(data.iloc[i]['lat_Amap']) + tail
            req = urlopen(url)
            res = req.read().decode()
            temp = json.loads(res)
                         
            try:
                pos = list(temp['result'][0].values())  # 字典转列表
                transpos.append(pos)
                print('catch %d \n'%j)
                j = j + 1
            except:
                transpos.append(['null','null'])
                print('fail %d \n'%k)
                k = k + 1
        tran = pd.DataFrame(transpos)
        tran.to_csv('高德转百度.csv', index=False, columns = ['lng', 'lat'])
        print('成功转换%d个,成功率%.2f%%' % (j - 1, (j - 1) * 100 / (j + k - 2)))
    

    注意下,链接里有这么句代码

    from=3&to=5
    

    官方文档解释如下:

    源坐标类型:
    1:GPS设备获取的角度坐标,WGS84坐标;
    2:GPS获取的米制坐标、sogou地图所用坐标;
    3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标,国测局(GCJ02)坐标;
    4:3中列表地图坐标对应的米制坐标;
    5:百度地图采用的经纬度坐标;
    6:百度地图采用的米制坐标;
    7:mapbar地图坐标;
    8:51地图坐标
    目标坐标类型:
    5:bd09ll(百度经纬度坐标);
    6:bd09mc(百度米制经纬度坐标)

    我是高德经纬度转百度经纬度,自然是from=3to=5。
    看看转换经纬度后的pyecharts-Geo图吧
    在这里插入图片描述
    全都在无锡市内了,大功告成,虽然没啥用了(╥╯^╰╥)

    展开全文
  • 通过异步网络请求,调用高德API,...高德地图API,点击这里 package com.alibaba.controller; import com.alibaba.entity.MyPoint; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.

    通过异步网络请求,调用高德API,获取某个地址的经纬度等信息,再转为百度的经纬度。高德地图API,点击这里

    package com.alibaba.controller;
    
    import com.alibaba.entity.MyPoint;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.ning.http.client.AsyncHttpClient;
    import com.ning.http.client.AsyncHttpClientConfig;
    import com.ning.http.client.ListenableFuture;
    import com.ning.http.client.Response;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.math.BigDecimal;
    import java.util.concurrent.TimeUnit;
    
    /**
     * Created by lightClouds917
     * Date 2018/1/17
     * Description:异步网络请求
     * 此处以请求高德地图示例
     */
    @RestController
    @RequestMapping("asynClient")
    public class AsynClientController {
    
        private final org.slf4j.Logger logger = LoggerFactory.getLogger(getClass());
        /** π */
        private static double PI = 3.1415926535897932384626;
        /** 参数 */
        private static double X_PI = 3.14159265358979324 * 3000.0 / 180.0;
    
        /**
         * 高德地图  获取经纬度
         * @return
         */
        @RequestMapping(value = "test6",method = RequestMethod.GET)
        public String test6() {
            logger.info("==================>查询高德地图");
    
            String url  = "http://restapi.amap.com/v3/geocode/geo?address=方恒国际中心A座&key=05831d6b4be84db6d042b1d00d65b006";
            String url1 = "http://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=05831d6b4be84db6d042b1d00d65b006";
            String url2  = "http://restapi.amap.com/v3/geocode/geo?address=杭州市江干区杭海路1099号&key=05831d6b4be84db6d042b1d00d65b006";
    
            //异步网络请求
            AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
            builder.setCompressionEnabled(true).setAllowPoolingConnection(true);
            builder.setRequestTimeoutInMs((int) TimeUnit.MINUTES.toMillis(1));
            builder.setIdleConnectionTimeoutInMs((int) TimeUnit.MINUTES.toMillis(1));
    
            AsyncHttpClient client = new AsyncHttpClient(builder.build());
            try {
                ListenableFuture<Response> future = client.prepareGet(url2).execute();
                String result = future.get().getResponseBody();
                logger.info("======>result:"+result);
                JsonNode jsonNode = new com.fasterxml.jackson.databind.ObjectMapper().readTree(future.get().getResponseBody());
                if (jsonNode.findValue("status").textValue().equals("1")) {
                    JsonNode listSource = jsonNode.findValue("location");
                    for (String location : listSource.textValue().split(",")) {
                        //得到这个位置的经纬度
                        logger.info(location);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (client != null) {
                    client.close();
                }
            }
            return null;
        }
    
        /**
         * 查询高德地图坐标
         * 转为百度地图
         * url中:address为查询地址
         *       key需要去高德地图申请,类似于秘钥一样 ,申请地址:http://lbs.amap.com/api/webservice/summary/
         */
        @RequestMapping(value = "test7",method = RequestMethod.GET)
        public void test7(){
            try {
                logger.info("==================>查询高德地图");
                String url  = "http://restapi.amap.com/v3/geocode/geo?address=方恒国际中心A座&key=05831d6b4be84db6d042b1d00d65b006";
                //异步网络请求   比上面的简化了一下
                AsyncHttpClient client = new AsyncHttpClient();
                AsyncHttpClient.BoundRequestBuilder builder = client.prepareGet(url);
                ListenableFuture<Response> future = builder.execute();
    
                JsonNode jsonNode = new ObjectMapper().readTree(future.get().getResponseBody());
                if(jsonNode.findValue("status").textValue().equals("1")){
                    JsonNode location = jsonNode.findValue("location");;
                    logger.info("==========>location:"+location);
                    String[] lonAndLat = location.textValue().split(",");
                    logger.info("========>经度:"+lonAndLat[0]);
                    logger.info("========>纬度:"+lonAndLat[1]);
    
                    //高德---->百度地图
                    MyPoint myPoint = bd_encrypt(new MyPoint(Double.valueOf(lonAndLat[0]), Double.valueOf(lonAndLat[1])));
                    logger.info("========>经度:"+myPoint.getLon());
                    logger.info("========>纬度:"+myPoint.getLat());
                }
                String responseBody = future.get().getResponseBody();
                logger.info(responseBody);
            }catch (Exception ex){
                ex.printStackTrace();
                logger.info("=======>查询出错",ex);
            }
        }
    
        /**
         * 对double类型数据保留小数点后多少位
         * 高德地图转码返回的是 小数点后6位,为了统一封装一下
         * @param digit 位数
         * @param in 输入
         * @return 保留小数位后的数
         */
        public static double dataDigit(int digit,double in){
            return new BigDecimal(in).setScale(6,   BigDecimal.ROUND_HALF_UP).doubleValue();
    
        }
    
        /**
         * 将火星坐标转变成百度坐标
         * @param lngLat_gd 火星坐标(高德、腾讯地图坐标等)
         * @return 百度坐标
         */
        public static MyPoint bd_encrypt(MyPoint lngLat_gd) {
            double x = lngLat_gd.getLon(), y = lngLat_gd.getLat();
            double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
            double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x *  X_PI);
            return new MyPoint(dataDigit(6,z * Math.cos(theta) + 0.0065),dataDigit(6,z * Math.sin(theta) + 0.006));
        }
    }
    


    展开全文
  • 高德地图离线地图Demo

    热门讨论 2015-01-21 16:11:31
    高德地图离线地图Demo,之前下载的官网的demo是有问题的(普通的市下载不显示进度),这是修改过的demo。
  • 高德地图集成概要高德地图集成(一):高德地图简单实现由于一开始是接触地图是接触的百度地图所以做项目的也是也会首先选择百度地图。但是自己使用的是高德地图于是想简单集成一下高德地图。以便以后实时应变。高德...
  • 最近笔者在做一个直播APP,里面有个附近的视频功能,获取周边的视频,要实时定位,用到高德地图,那么笔者把高德地图接口申请以及接口集成的过程分享出来。 一、注册 1、填写信息 2、成为开发者 3、注册完成...
  • 高德地图定位

    千次下载 热门讨论 2016-05-26 19:58:39
    实现高德地图定位
  • 高德地图源码

    热门讨论 2014-05-30 13:15:00
    高德地图源码
  • 1.这是网上的一个demo,绘制高德地图轨迹回放,这段代码是取出该资源存放的数据,但是这个数据类型是什么类型?我想知道怎么往里面写入数据?有用过高德地图和这个类的大神吗? 2.我是想做高德地图的轨迹回放 ,我是想...
  • 调用高德地图开发时出现不明问题,找不到源头,请各位帮帮忙,说一下调试这种问题的思路 以下是报错的信息 > Uncaught TypeError: Cannot read property 'Out' of undefined > at c.Yg.transition (eval at Cl ...
  • Android 高德地图入门demo,最新高德地图实现方法,附源码及apk
  • 高德地图vs百度地图

    千次阅读 2017-08-11 11:13:21
    高德地图、百度地图调研一、效果图 地图滑动停止后,以屏幕中心为圆心,随机生成10个用户并将其显示在对应的Map上; 点击对应的用户(红色气球),弹出该用户对应的用户名 与 课程名称 效果图如下: ps: 显示在地图...
  • 通过本课程的学习,大家可以系统的学习高德地图各个接口如何在自己的项目中使用。以及如何进行扩展学习。 学习完本课程可以继续学习“Web前端开发仿美团/饿了吗移动App之高德地图接口对接案例”, 主要内容: ...
  • 高德地图当前定位失败Geolocation permission denied 代码来自官网 ``` mapObj = new AMap.Map('iCenter'); mapObj.plugin('AMap.Geolocation', function () { geolocation = new AMap.Geolocation({ ...
  • 应要求增加了高德地图定位来获取当前位置的经纬度,在公司连网没问题,连手机热点或者在家都获取不到,哪位大神可以帮忙看一下 ``` var map, geolocation; //加载地图,调用浏览器定位服务 高德地图 map = ...
  • 高德地图不显示 ![![图片说明](https://img-ask.csdn.net/upload/201603/31/1459404340_959130.png)图片说明](https://img-ask.csdn.net/upload/201603/31/1459404332_995365.png) 上面是我的完整代码: 这个是...
  • 我这里项目的需要是,使用高德地图, 要把地图上距离我当前位置这个大头针显示的位置的2公里之内的住宿,酒店,餐饮的信息, 全部检索到并显示在地图上, 我这里在项目里面要显示结果的地方添加的代码如下, //...
  • 大佬们,我在抓高德地图的poi/aoi的时候由于时间长了会出现一个休息一下的滑块验证, ! [图片说明](https://img-ask.csdn.net/upload/201811/20/1542700025_672219.png) ,这个滑块我找到了发送时最...
  • 高德地图-初始化地图

    万次阅读 2016-05-14 23:20:08
    1、问题背景 利用高德地图的接口,创建一个以武汉为中心点的地图,放大级别是182、实现源码 初始化地图 html,#map{height:100%} body{height:100%;margin:0px;padding:0px} function ...
  • 高德地图的定位SDK写了一个定位的程序 但是在真机运行的时候 public void onLocationChanged(AMapLocation amapLocation) 在这个定位监听回调方法里、我从amapLocation里获得经纬度 然后写到logcat里、...
  • 高德地图的坑

    千次阅读 2017-09-14 17:48:50
    1、自定义InfoWindow 重写InfoWindow的getInfoWindow()方法,返回一个View,如果这个View的根布局没有设置background,那么高德会给你外面套一层框框: ...高德地图默认显示的区域是很大的,比...
  • 高德地图去掉logo

    万次阅读 2016-01-30 11:36:55
    高德地图logo问题 真心感觉拿人的手短,集成一个高德地图,logo还必须得带着,集成文档是这样说的: 没办法,只能把他给覆盖掉了,效果还行 android:layout_width="70dp" android:layout_height="20dp" ...

空空如也

1 2 3 4 5 ... 20
收藏数 14,828
精华内容 5,931
关键字:

高德地图