Skip to content

peilongchencc/GaodeMap-LiveTracking

Repository files navigation

高德WEB服务API

基于高德WEB服务API进行位置追踪。

地理编码(地址-->经纬度):

只有 经纬度生成 后,才能使用逆地理编码获取POI信息。

POI(Point of Interest 兴趣点)通常是某个具体的位置,比如一个餐厅、一座商场。

AOI(Area of Interest 兴趣区域)是更大的区域范围,比如一个小区、一片公园、一块商圈。

文件运行:

python demo/geo_ex.py 

输出示例,返回字段中的 location 即经纬度:

地理编码结果:
{'status': '1', 'info': 'OK', 'infocode': '10000', 'count': '2', 'geocodes': [{'formatted_address': '北京市朝阳区阜通东大街6号', 'country': '中国', 'province': '北京市', 'citycode': '010', 'city': '北京市', 'district': '朝阳区', 'township': [], 'neighborhood': {'name': [], 'type': []}, 'building': {'name': [], 'type': []}, 'adcode': '110105', 'street': '阜通东大街', 'number': '6号', 'location': '116.482086,39.990496', 'level': '门址'}, {'formatted_address': '北京市朝阳区阜通东大街6号院', 'country': '中国', 'province': '北京市', 'citycode': '010', 'city': '北京市', 'district': '朝阳区', 'township': [], 'neighborhood': {'name': [], 'type': []}, 'building': {'name': [], 'type': []}, 'adcode': '110105', 'street': '阜通东大街', 'number': '6号院', 'location': '116.482145,39.990039', 'level': '门址'}]}

地理编码结果:
{'status': '1', 'info': 'OK', 'infocode': '10000', 'count': '1', 'geocodes': [{'formatted_address': '北京市朝阳区东湖街道叶青大厦c座', 'country': '中国', 'province': '北京市', 'citycode': '010', 'city': '北京市', 'district': '朝阳区', 'township': [], 'neighborhood': {'name': [], 'type': []}, 'building': {'name': [], 'type': []}, 'adcode': '110105', 'street': [], 'number': 'c座', 'location': '116.468318,40.012600', 'level': '门址'}]}

逆地理编码(经纬度-->地址)

注意事项--地址解释:

针对经纬度 "116.482145,39.990039",对应的具体门牌号信息为 "北京市朝阳区阜通东大街6号",更容易理解的地址为 "北京市朝阳区望京街道方恒购物中心方恒国际"。

image

注意事项--不要通过逆地理编码获取POI:

不要通过逆地理编码获取POI,非常不准:

官方建议通过搜索POI 2.0获取POI:

搜索POI 2.0:

搜索POI 2.0即为项目主文件,可通过常规FastAPI文件启动方式启动服务进行测试。

POI分类编码可参考高德官方自定义修改。

项目运行:

创建env_config/.env.local填入高德地图 API 的密钥,例如:

# 高德地图 API 的密钥
GAODE_API_KEY="你的密钥"
  1. 运行服务
python main.py
  1. 访问接口

服务运行后,根据你的ip,访问 http://127.0.0.1:8000/docs,可以使用 Swagger UI 测试接口。

/search_poi/ 接口请求示例:

/search_poi/ 发送 POST 请求,示例 JSON 数据:

示例--北京市朝阳区东湖街道叶青大厦c座的经纬度

{
    "location": "116.468318,40.012600"
}

🚨经度和纬度用","分割,经度在前,纬度在后,经纬度小数点后不得超过6位。

返回结果

返回的数据会是 POI 搜索结果(转换后的格式)。如果失败,将返回错误信息。

示例--北京市朝阳区东湖街道叶青大厦c座周边POI

{
    "酒吧": [
        "CLUB禾·高空观景西餐厅"
    ],
    "中餐厅": [
        "望京一号(博雅店)",
        "俄士厨房(北京望京万象汇店)",
        "黄记煌三汁焖锅(望京万象汇店)"
    ],
    "普通商场": [
        "北京望京万象汇"
    ],
    "上海菜": [
        "老吉堂上海本帮菜(望京店)"
    ],
    "购物中心": [
        "望京华彩商业中心"
    ],
    "潮州菜": [
        "潮粥荟·潮汕砂锅粥(望京万象汇店)"
    ],
    "综合酒楼": [
        "香丰阁(望京店)"
    ],
    "云贵菜": [
        "费大厨辣椒炒肉(北京望京万象汇店)"
    ],
    "餐饮相关": [
        "北京望京华彩智选假日酒店",
        "拾也烤肉放题(望京万象汇店)"
    ],
    "麦当劳": [
        "麦当劳(广顺北大街餐厅)"
    ],
    "火锅店": [
        "海底捞火锅(望京万象汇店)"
    ],
    "海鲜酒楼": [
        "香丰渔港蒸汽海鲜·川湘菜(望京店)"
    ],
    "日本料理": [
        "将太无二(北京望京万象汇餐厅)"
    ],
    "特色/地方风味餐厅": [
        "很久以前羊肉串(北京望京万象汇店)"
    ],
    "培训机构": [
        "新东方国际教育·雅思托福(望京华彩校区)"
    ],
    "电影院": [
        "新影联·华谊兄弟电影中心"
    ],
    "外国餐厅": [
        "比格比萨自助(望京万象汇店)"
    ],
    "四川菜(川菜)": [
        "江边城外烤全鱼(望京万象汇店)"
    ],
    "KTV": [
        "T-ONE KTV同乐迪臻品店(望京万象汇店)"
    ],
    "西餐厅(综合风味)": [
        "FLY PIZZA&HOODADAK CHICKEN(望京店)"
    ],
    "图书馆": [
        "东湖街道图书馆"
    ],
    "糕饼店": [
        "北京稻香村(东湖欢乐颂北区店)"
    ]
}

/create_gaode_info/ 接口请求示例:

请求体:

{
    "location": "116.468318,40.012600",
    "user_name": "中东土匪"
}

图示如下:

返回值如下,可运行该文件验证:

{
    "collections": [
        {
            "timestamp": "2025-01-15 17:05:44",
            "formatted_address": "北京市朝阳区望京街道方恒购物中心方恒国际",
            "pois": {
                "电影院": [
                    "奥兰环球影城(望京方恒购物中心二店)",
                    "奥兰环球影城(望京方恒购物中心一店)",
                    "中影CFR国际影城"
                ],
                "餐饮相关": [
                    "都士牧人牛肉干",
                    "西塔老太太串店(北京首店)"
                ],
                "安徽菜(徽菜)": [
                    "又见徽家(望京万科时代广场店)"
                ],
                "糕饼店": [
                    "原麦山丘(万科时代中心店)"
                ],
                "咖啡厅": [
                    "8KM COFFEE",
                    "MOJO(望京店)"
                ],
                "娱乐场所": [
                    "kiki kids儿童空间(万科时代中心·望京店)"
                ],
                "健身中心": [
                    "丽池阳光游泳健身"
                ],
                "中餐厅": [
                    "日出拉面(望京店)",
                    "隐厨·中国菜馆(望京店)"
                ],
                "北京菜": [
                    "提督·TIDU(望京万科店)"
                ],
                "牛扒店(扒房)": [
                    "牛排家(万科时代中心店)"
                ],
                "图书馆": [
                    "小街图书馆"
                ],
                "麦当劳": [
                    "麦当劳(望京店)"
                ],
                "日本料理": [
                    "酒鬼金横丁(望京万科店)"
                ],
                "体育休闲服务场所": [
                    "良子健身(望京总店)"
                ],
                "购物中心": [
                    "新世界百货(望京店)"
                ],
                "火锅店": [
                    "海底捞火锅(望京新世界店)"
                ],
                "科教文化场所": [
                    "嘉禾舞社(望京店)"
                ],
                "意式菜品餐厅": [
                    "萨莉亚意式餐厅"
                ],
                "江苏菜": [
                    "绿茶餐厅(望京新世界店)"
                ],
                "星巴克咖啡": [
                    "星巴克(望京新世界店)"
                ]
            }
        },
        {
            "timestamp": "2025-01-15 17:08:02",
            "formatted_address": "北京市朝阳区东湖街道叶青大厦C座",
            "pois": {
                "酒吧": [
                    "CLUB禾·高空观景西餐厅"
                ],
                "中餐厅": [
                    "望京一号(博雅店)",
                    "俄士厨房(北京望京万象汇店)",
                    "黄记煌三汁焖锅(望京万象汇店)"
                ],
                "普通商场": [
                    "北京望京万象汇"
                ],
                "上海菜": [
                    "老吉堂上海本帮菜(望京店)"
                ],
                "购物中心": [
                    "望京华彩商业中心"
                ],
                "潮州菜": [
                    "潮粥荟·潮汕砂锅粥(望京万象汇店)"
                ],
                "综合酒楼": [
                    "香丰阁(望京店)"
                ],
                "糕饼店": [
                    "可露朵蛋糕CloudD'or(望京万象汇店)"
                ],
                "云贵菜": [
                    "费大厨辣椒炒肉(北京望京万象汇店)"
                ],
                "麦当劳": [
                    "麦当劳(广顺北大街餐厅)"
                ],
                "餐饮相关": [
                    "北京望京华彩智选假日酒店",
                    "拾也烤肉放题(望京万象汇店)"
                ],
                "火锅店": [
                    "海底捞火锅(望京万象汇店)"
                ],
                "海鲜酒楼": [
                    "香丰渔港蒸汽海鲜·川湘菜(望京店)"
                ],
                "日本料理": [
                    "将太无二(北京望京万象汇餐厅)"
                ],
                "特色/地方风味餐厅": [
                    "很久以前羊肉串(北京望京万象汇店)"
                ],
                "培训机构": [
                    "新东方国际教育·雅思托福(望京华彩校区)"
                ],
                "北京菜": [
                    "便宜坊烤鸭(北京望京万象汇店)"
                ],
                "电影院": [
                    "新影联·华谊兄弟电影中心"
                ],
                "外国餐厅": [
                    "比格比萨自助(望京万象汇店)"
                ],
                "四川菜(川菜)": [
                    "江边城外烤全鱼(望京万象汇店)"
                ],
                "KTV": [
                    "T-ONE KTV同乐迪臻品店(望京万象汇店)"
                ],
                "西餐厅(综合风味)": [
                    "FLY PIZZA&HOODADAK CHICKEN(望京店)"
                ]
            }
        }
    ]
}

/search_weather/ 接口请求示例:

请求体:

{
    "location": "116.482145,39.990039",
    "forecast": true
}

forecast 用于区分查询 实况天气 or 预报天气。预报天气高德默认返回4天,今天、明天、后天、大后天,由项目实用角度出发,笔者定义仅返回今天和明天的预报天气

返回值:

高德天气查询接口的原始返回值为字典,人类难以理解,需要转化为人类可理解文本。示例如下:

实况天气的返回值示例:

北京朝阳区
天气:晴
温度:0°C
风向:东北
风力:≤3
湿度:45%
数据发布时间:2025-01-17 09:33:02

预报天气的返回值示例:

北京朝阳区
数据发布时间:2025-01-17 09:33:02
2025-01-17(星期5)
白天天气:晴
夜晚天气:晴
白天最高温度:7°C
夜晚最低温度:-4°C
白天风向:南
夜晚风向:南
白天风力:1-3级
夜晚风力:1-3级
2025-01-18(星期6)
白天天气:晴
夜晚天气:晴
白天最高温度:10°C
夜晚最低温度:-3°C
白天风向:西南
夜晚风向:西南
白天风力:1-3级
夜晚风力:1-3级

About

基于高德WEB服务API进行位置追踪。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages