精华内容
下载资源
问答
  • 高德地图api

    2015-04-23 20:44:46
    高德地图api,代码齐全,功能完整,希望能够帮助大家
  • 高德地图API

    2013-11-21 12:19:14
    高德地图api 最新2.1.3SDK详细介绍 提供给大家学习
  • JAVA调用高德地图API,反解析中地址为经纬度。/*** 高德地图WebAPI : 地址转化为高德坐标* String address:高德地图地址* KEY-为地图key,这里的key要申请对应服务的key 一定要选择“web服务”项的key* 输入:成都市...

    JAVA调用高德地图API,反解析中地址为经纬度。

    /**

    * 高德地图WebAPI : 地址转化为高德坐标

    * String address:高德地图地址

    * KEY-为地图key,这里的key要申请对应服务的key 一定要选择“web服务”项的key

    * 输入:成都市武侯区

    * 输出:104.043390,30.641982

    */

    public static String coordinate(String address) {

    try {

    address = URLEncoder.encode(address, "utf-8");

    } catch (UnsupportedEncodingException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    String url = BASE_PATH + "/geocode/geo?address=" + address + "&output=json&key="+ KEY;

    String coordinateString = null;

    try {

    String temp=HttpClientUtil.doGet(url);

    JSONObject jsonobject = JSONObject.fromObject(temp);

    JSONArray pathArray = jsonobject.getJSONArray("geocodes");

    coordinateString = pathArray.getJSONObject(0).getString("location");

    } catch (IOException e) {

    e.printStackTrace();

    }

    return coordinateString;

    }

    计算两个经纬度之间的驾驶距离

    /**

    * 高德地图WebAPI : 驾车路径规划 计算两地之间行驶的距离(米)

    * String origins:起始坐标

    * String destination:终点坐标

    *输入:原坐标:{116.45925,39.910031},目标坐标:{116.587922,40.081577}

    *输出:25424

    */

    public static String distance(String origins, String destination) {

    String distanceString = null;

    try {

    String url = BASE_PATH + "/direction/driving?" + "origin=" + origins + "&destination=" + destination

    + "&output=json"+ "&key="+ KEY;

    String aa =HttpClientUtil.doGet(url);

    JSONObject jsonobject=JSONObject.fromObject(aa);

    JSONArray pathArray = jsonobject.getJSONObject("route").getJSONArray("paths");

    distanceString = pathArray.getJSONObject(0).getString("distance");

    } catch (Exception e) {

    e.printStackTrace();

    }

    return distanceString;

    }

    展开全文
  • 作者:国服帅座 经济学在读硕士知乎专栏:...这需要我们首先要对高德地图API有个基本的了解。登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,点击进入。我们可以看到一个API,...

    4618e17ea682fa0638c6dd04e2858e85.gif

    927c369031e42f9dc1bf812280a2e677.gif

    作者:国服帅座  经济学在读硕士

    知乎专栏:https://zhuanlan.zhihu.com/c_1051263791760863232

    0认识高德地图API

    比起普通的静态网页爬虫,爬高德地图的麻烦之处在于API中存在参数。这需要我们首先要对高德地图API有个基本的了解。

    登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,点击进入。

    626ebc2eb97d5877a902d6b011c8702c.png

    我们可以看到一个API,其问号前面的部分是固定不变的,而问号后面的是参数部分。高德地图此处罗列了7个参数,包括2个必选参数,以及5个可选参数。这两个必选参数,一个是高德key,需要注册;另一个是参数address,比如人民公园。你也许需要的是南京的人民公园的经纬度信息,凑巧的是,北京也有一个人民公园,天津也有一个人民公园。参数city的存在可以限定地址信息的范围,确保你获取的是南京的人民公园经纬度。参数output值得关注,默认的输出结果是json格式。

    26af2c76dad038a8bc169e4fc91b41ff.png
    72a0af5bebce39372773484f5c58fa2e.png

    如果我需要的不是某个建筑的经纬度,而是某个行政区域的呢?打个比方,我不想要南京的人民公园的经纬度,我想要的是南京市的经纬度。这样也是可以实现的,只需要参数address直接填入“南京市”即可,这便不需要参数city了。这样得出的经纬度,一般是各地行政中心所在的经纬度。

    1爬取单个数据

    下面,以南京为例,爬取其经纬度。

    import requests
    import json
    url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
    params = { 'key': '你的高德密钥',
               'address': '南京市'   }                # 将两个参数放入字典
    res = requests.get(url, params)
    res.text

    输出结果如下:

    054ac525d65510a3ef2a0d8726804c60.png

    输出结果是json格式,需要用到json模块将其转化为Python字典。

    jd = json.loads(res.text)
    jd

    输出结果如下:

    626cdca2c8ab5f040efbe945107b1664.png
    coords = jd['geocodes'][0]['location']
    coords

    输出结果如下:

    9a5e750242e0c58e6ee8c07afc5ea24f.png

    这,便是南京市坐标。

    2整合为函数

    为了方便起见,将上面过程整合为函数。

    import requests
    import json
    def coords(city):
        url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
        params = { 'key': '你的高德密钥',                 
                   'address': city   }                    # 将两个参数放入字典
        res = requests.get(url, params)
        jd =  json.loads(res.text)
        return jd['geocodes'][0]['location']

    下面,在自变量位置输入“南京市”,检验下函数正确性。

    3for循环批量处理

    当大批量处理时,使用for循环即可。

    7b27e9ecd65d8a29427b4b154cc62377.png

    83213a7f4d0a641c6ce736e405e99495.gif

    ce245159e4867b94d5b69e82fe3c7637.png

    展开全文
  • Python玩转高德地图API(二)前言上篇文章中,简单的介绍了下高德地图的 API 相关业务知识,不知道大家有没有看懂咧!这篇文章来继续完成上篇文章没有完成的编码任务!忘记的,可以简单回顾一下《Python玩转高德地图...

    Python玩转高德地图API(二)

    前言

    上篇文章中,简单的介绍了下高德地图的 API 相关业务知识,不知道大家有没有看懂咧!

    这篇文章来继续完成上篇文章没有完成的编码任务!忘记的,可以简单回顾一下《Python玩转高德地图API(一)》

    环境介绍

    开始前,先来说下本机环境。Python版本 : Python3.7

    开发工具 : Pycharm

    第三方库 : requests

    还会用到的是 Python 自带的 json 库。因为调用 API 返回的结果是 JSON 或者 XML 形式的报文,关于这两点,可以回看《python小课堂25 - 你真的了解JSON嘛?》

    本项目必然是采用 JSON 啦,现在除了一些传统公司(比如我之前在的保险公司,以及一些国企航空公司)的老项目使用 XML 报文来进行数据传输,大部分互联网项目中采用的都是 JSON 传递接口信息。

    requests 玩转 API

    requests 是一个优雅的男孩子,不对,是一个优雅的第三方库~

    在之前的爬虫文章中,有介绍的此库的使用。作者个爱玩摄影的大神,写代码就像玩摄影一样,纯属艺术创作。

    以上次介绍高德 API 中的 POI 接口来举例。

    1. 打开官网,搜索 POI 处

    2. 阅读官网 API 文档,查看各参数含义

    3. 运行看结果

    看懂文档,理解了官方示例后,其实操作起来很简单,只需要我们用 requests 库携带自己的 key 向高德发起请求即可。

    当我们想获取北京市"麦当劳"全部餐饮地址时,请求的地址:

    https://restapi.amap.com/v3/place/text?keywords=麦当劳&city=北京&offset=20&page=1&key={key}&extensions=base

    url中,?后面跟的就是请求时的参数。keywords :要搜索的关键词

    city :城市,可以查看具体的城市码表(官方提供)

    offset :每页显示多少条数据

    page :页数

    key :之前申请的用户 key

    extensions : 传入 base 即可,all 的话比较多余

    还有些可选项,不传就行啦,比如 output=xml ,默认不传就是 json 形式返回结果。

    硬核代码

    代码其实不多,算上空行一共 70 行不到,就可以获取完整地理信息。

    如果想要实验的同学,可以按照顺序将代码 copy 到自己的编辑器实践。下面按照顺序介绍:

    1. 读取用户 key 函数

    目的是读取本地 key ,灵活化处理(这样不用暴露自己的 key 给大家看了 ) user-key中写入你自己的key。

    def read_key():

    """ 持久化key,便于读取 """

    key_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'user-key')

    print(key_path)

    with open(key_path, 'r', encoding='utf-8') as f:

    key = f.read()

    print(key)

    return key

    2. requests 请求,get 方式通用函数

    没什么好介绍的,之前说过很多遍了,使用方法按照去看 requests 库的官方文档即可。

    def request_url_get(url):

    """ 请求url方法get方法 """

    try:

    r = requests.get(url=url, timeout=30)

    if r.status_code == 200:

    return r.text

    return None

    except RequestException:

    print('请求url返回错误异常')

    return None

    3. 调用高德 api 抽象方法,解析返回的 json 函数

    使用了 python 自带的 json 库,将高德 api 返回的字符串转为了 json 形式,但是在 python 中,其实是 dict 类型的,获取结果可以通过类似 result['address'] 的形式获取想要的内容。

    def parse_json(content_json):

    """ 解析json函数 """

    result_json = json.loads(content_json)

    return result_json

    def request_api(url):

    """ 请求高德api 解析json """

    result = request_url_get(url)

    result_json = parse_json(result)

    return result_json

    4. 调用高德 api 抽象方法,解析返回的 json 函数

    def run():

    """ 运行函数 """

    keywords = '麦当劳'

    city = 'beijing'

    key = read_key()

    offset = 20

    index_url = f'https://restapi.amap.com/v3/place/text?keywords={keywords}&city={city}&' \

    f'offset={offset}&page=1&key={key}&extensions=base'

    index_result = request_api(index_url)

    pages = math.ceil(int(index_result['count']) / offset) # 算出一共需要的总页数

    for page in range(1, pages + 1):

    url = f'https://restapi.amap.com/v3/place/text?keywords={keywords}&city={city}&' \

    f'offset={offset}&page={page}&key={key}&extensions=base'

    result = request_api(url)

    print(result)

    最后这个函数,好好说下,精华思路都在这块。

    为了代码的灵活度,我们可以将请求的中的变化参数抽出来,作为程序中的变量去构造请求。

    请求第一次时,高德地图会返回一个 count 字段,代表总数量,使用 count / offset ,就能得到一共我们要循环访问多少页。代码中做了向上转型的处理。

    例如下面:

    查询北京麦当劳一共 262 个数据,每页只显示 20 条数据(offset的值),所以 262/20 = 13.1 。

    这样需要让传入 url 中的 page 从 1 - 14 页去循环获取数据。所以在代码中,使用了 math.ceil 的方法让 13.1 变成 14。

    看下最终获取完数据的截图:

    Pycharm后面还有很多很多数据。。

    总结

    嗯!到这里,交通数据分析项目相关的内容就结束了,接下来就是自己开发了...大家感兴趣的也可以自行尝试。

    是不是感觉调用 API 这种东西,就是这么简单枯燥而无趣呢。。。可往往各种商业公司的背后,赚钱的逻辑就是靠这些接口丫!

    大概一年前的时候,我自己简单的开发出来了第一个版本,当时没有想着用 flask 等框架,后续我会在此项目技术上,继续集成开发吧。

    当时放弃的原因是.....上家公司的路段高德地图不支持....

    到现在,此项目 star14,fork5。。。

    感兴趣的后台回复 高德 获取源码地址。

    本篇文章就到这里啦,有什么想要说的,欢迎留言区留言探讨!

    展开全文
  • 作者:国服帅座 经济学在读硕士知乎专栏:...这需要我们首先要对高德地图API有个基本的了解。登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,点击进入。我们可以看到一个API,...

    30d38b574a94255693a765947727d6c0.gif

    d26af57f3d52b19445fd9bc928e1b688.gif

    作者:国服帅座  经济学在读硕士

    知乎专栏:https://zhuanlan.zhihu.com/c_1051263791760863232

    0认识高德地图API

    比起普通的静态网页爬虫,爬高德地图的麻烦之处在于API中存在参数。这需要我们首先要对高德地图API有个基本的了解。

    登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,点击进入。

    accc033754ba8f59ebf82b581cc6e663.png

    我们可以看到一个API,其问号前面的部分是固定不变的,而问号后面的是参数部分。高德地图此处罗列了7个参数,包括2个必选参数,以及5个可选参数。这两个必选参数,一个是高德key,需要注册;另一个是参数address,比如人民公园。你也许需要的是南京的人民公园的经纬度信息,凑巧的是,北京也有一个人民公园,天津也有一个人民公园。参数city的存在可以限定地址信息的范围,确保你获取的是南京的人民公园经纬度。参数output值得关注,默认的输出结果是json格式。

    7baa184520bce0002c7a9e56e718f690.png
    63fba703d3cd553f5fd60d29d1a2bcfd.png

    如果我需要的不是某个建筑的经纬度,而是某个行政区域的呢?打个比方,我不想要南京的人民公园的经纬度,我想要的是南京市的经纬度。这样也是可以实现的,只需要参数address直接填入“南京市”即可,这便不需要参数city了。这样得出的经纬度,一般是各地行政中心所在的经纬度。

    1爬取单个数据

    下面,以南京为例,爬取其经纬度。

    import requests
    import json
    url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
    params = { 'key': '你的高德密钥',
               'address': '南京市'   }                # 将两个参数放入字典
    res = requests.get(url, params)
    res.text

    输出结果如下:

    99fd83db3d2126f3996bbd964ae2c328.png

    输出结果是json格式,需要用到json模块将其转化为Python字典。

    jd = json.loads(res.text)
    jd

    输出结果如下:

    262b25780d7fafe2c7d3054488816233.png
    coords = jd['geocodes'][0]['location']
    coords

    输出结果如下:

    9e05a13da4fdc2cfb14fb25ba760dd3b.png

    这,便是南京市坐标。

    2整合为函数

    为了方便起见,将上面过程整合为函数。

    import requests
    import json
    def coords(city):
        url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
        params = { 'key': '你的高德密钥',                 
                   'address': city   }                    # 将两个参数放入字典
        res = requests.get(url, params)
        jd =  json.loads(res.text)
        return jd['geocodes'][0]['location']

    下面,在自变量位置输入“南京市”,检验下函数正确性。

    3for循环批量处理

    当大批量处理时,使用for循环即可。

    b9716f7b940c728eef913aa8d7a47ea2.png

    41a9ce08572f5e50001cae8e5e38bffa.gif

    77e06ad0b5e19d006574e6c79d204ccd.png

    展开全文
  • 原标题:Python调用高德地图API实现经纬度换算、地图可视化源 /经管人学数据分析文 /糖甜甜甜 目前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,...
  • Python玩转高德地图API(一)前言接下来的两篇文章介绍下,如何使用 requests 库玩转高德地图!说是玩转,不如通俗的说是用 requests 库来请求高德地图为我们提供的官方API。本篇是介绍地图业务相关性的知识点(无...
  • 高德地图api

    2018-06-22 10:57:39
    高德地图API,android地图开发包,内附完整demo,官方完整版
  • 需求:现有一份商家地址数据,地址十分详细,可以具体到门牌号,但是,我们做分析不需要这么详细的地址,我们...地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API​lbs.amap.com在正式使用该接口之前需...
  • 高德地图API调用

    2017-07-06 15:20:13
    高德地图API调用,实现自己的饿了么点餐

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,111
精华内容 2,044
关键字:

高德地图api