基于高德坐标拾取系统: 高德地图API

1.地址转高德坐标代码:request_coord.py

import json
import requests
import coord_trans"""
根据地址查询地点
"""def request_get(url, param, header):fails = 0while True:try:if fails >= 20:breakret = requests.get(url=url, params=param, headers=header, timeout=10)if ret.status_code == 200:text = json.loads(ret.text)else:continueexcept:fails += 1print('网络连接出现问题, 正在尝试再次请求: ', fails)else:breakreturn textdef request_coords(address):post_url = "https://restapi.amap.com/v3/place/text"request_param = {"s": "rsv3","children": "","key": "8325164e247e15eea68b59e89200988b","page": 1,"offset": 10,"city": 110000,"language": "zh_cn","platform": "JS","logversion": 2.0,"sdkversion": 1.3,"appname": "https://lbs.amap.com/console/show/picker","csid": "7598AB3B-4BE6-4719-951B-9EDBE6331000","keywords": address}header = {"Accept": "*/*","Accept-Encoding": "gzip, deflate, sdch, br","Accept-Language": "zh-CN,zh;q=0.8","Connection": "keep-alive","Cookie": "key=8325164e247e15eea68b59e89200988b; guid=f631-e4a9-c4a0-275d; UM_distinctid=16e68043e7113e-0b9c86ad90cb11-4d045769-1fa400-16e68043e728d","Host": "restapi.amap.com","Referer": "https://lbs.amap.com/console/show/picker","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"}a = request_get(post_url, request_param, header)pois = a["pois"]print(pois[0]["location"])accurate_coord = str(pois[0]["location"]).split(",")# 将高德坐标转为WGS84坐标wgs84_coord = coord_trans.gcj02_to_wgs84(float(accurate_coord[0]), float(accurate_coord[1]))return wgs84_coordrequest_coords("北京市朝阳区奥林匹克森林公园")

2.坐标系统转换代码:coord_trans.py

"""
坐标转换
"""import mathx_pi = 3.14159265358979324 * 3000.0 / 180.0
pi = 3.1415926535897932384626  # π
a = 6378245.0  # 长半轴
ee = 0.00669342162296594323  # 偏心率平方
coordinate = []
lng = []
lat = []
converted_lng = []
converted_lat = []# 火星坐标系(GCJ-02)转百度坐标系(BD-09)
# 谷歌、高德——>百度
def gcj02_to_bd09(lng, lat):z = math.sqrt(lng * lng + lat * lat) + 0.00002 * math.sin(lat * x_pi)theta = math.atan2(lat, lng) + 0.000003 * math.cos(lng * x_pi)bd_lng = z * math.cos(theta) + 0.0065bd_lat = z * math.sin(theta) + 0.006return [bd_lng, bd_lat]# 百度坐标系(BD-09)转火星坐标系(GCJ-02)
# 百度——>谷歌、高德
def bd09_to_gcj02(bd_lon, bd_lat):x = bd_lon - 0.0065y = bd_lat - 0.006z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * x_pi)theta = math.atan2(y, x) - 0.000003 * math.cos(x * x_pi)gg_lng = z * math.cos(theta)gg_lat = z * math.sin(theta)return [gg_lng, gg_lat]# WGS84转GCJ02(火星坐标系)
def wgs84_to_gcj02(lng, lat):# 判断是否在国内if out_of_china(lng, lat):return [lng, lat]dlat = _transformlat(lng - 105.0, lat - 35.0)dlng = _transformlng(lng - 105.0, lat - 35.0)radlat = lat / 180.0 * pimagic = math.sin(radlat)magic = 1 - ee * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi)dlng = (dlng * 180.0) / (a / sqrtmagic * math.cos(radlat) * pi)mglat = lat + dlatmglng = lng + dlngreturn [mglng, mglat]#  GCJ02(火星坐标系)转GPS84
def gcj02_to_wgs84(lng, lat):if out_of_china(lng, lat):return [lng, lat]dlat = _transformlat(lng - 105.0, lat - 35.0)dlng = _transformlng(lng - 105.0, lat - 35.0)radlat = lat / 180.0 * pimagic = math.sin(radlat)magic = 1 - ee * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi)dlng = (dlng * 180.0) / (a / sqrtmagic * math.cos(radlat) * pi)mglat = lat + dlatmglng = lng + dlngreturn [lng * 2 - mglng, lat * 2 - mglat]# 百度坐标系转84坐标
def bd09_to_wgs84(bd_lon, bd_lat):lon, lat = bd09_to_gcj02(bd_lon, bd_lat)return gcj02_to_wgs84(lon, lat)# 84坐标转百度坐标
def wgs84_to_bd09(lon, lat):lon, lat = wgs84_to_gcj02(lon, lat)return gcj02_to_bd09(lon, lat)def _transformlat(lng, lat):ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + \0.1 * lng * lat + 0.2 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 *math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lat * pi) + 40.0 *math.sin(lat / 3.0 * pi)) * 2.0 / 3.0ret += (160.0 * math.sin(lat / 12.0 * pi) + 320 *math.sin(lat * pi / 30.0)) * 2.0 / 3.0return retdef _transformlng(lng, lat):ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + \0.1 * lng * lat + 0.1 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 *math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lng * pi) + 40.0 *math.sin(lng / 3.0 * pi)) * 2.0 / 3.0ret += (150.0 * math.sin(lng / 12.0 * pi) + 300.0 *math.sin(lng / 30.0 * pi)) * 2.0 / 3.0return ret# 判断是否在国内,不在国内不做偏移
def out_of_china(lng, lat):return not (lng > 73.66 and lng < 135.05 and lat > 3.86 and lat < 53.55)

python基于高德地图坐标拾取系统获取地址坐标相关推荐

  1. 高德地图:点击获取火星坐标(经纬度)

    本文根据酸奶小妹博文中代码进行修改:http://www.cnblogs.com/milkmap/p/3627940.html 由于高德api升级,原文代码貌似已经不能用,略作修改后可用. <! ...

  2. python使用高德地图api实现批量查询地址经纬度

    新手尝试 import requests import pandas as pd import csv data = pd.read_csv('地址.csv',engine='python')#导入地 ...

  3. java aoi 服务器地图_GitHub - WanZixin/getShp: 利用高德地图web服务API获取坐标串,生成行政区和aoi的shp文件...

    爬取数据生成shp文件 1.功能简介 共有两大功能,一个功能是根据高德地图web服务API获取行政区划坐标串,写入行政区shp文件:另一个功能是根据高德地图的接口获取poi坐标串,写入aoi(area ...

  4. 高德地图api 地理编码(地址-->坐标)geocoder.getLocation在官方可以测试出结果,下载代码到本地却用不了 问题解决

    问题 高德地图api 地理编码(地址-->坐标)功能,通过输入 地址信息 得到 经纬度信息.geocoder.getLocation在官方可以测试出结果,下载代码到本地却用不了. 官方示例测试, ...

  5. python交通调查数据处理_GitHub - unlimitbladeworks/traffic-monitor: 基于高德地图的交通数据分析...

    traffic-monitor(基于高德地图的交通数据分析) 设计需求在于每天上班早高峰期,每次都提前出门,虽然有地图可以实时查看路况,但是再过一阵时间 就会异常的堵车如果通过数据监控分析每天指定路段 ...

  6. 基于高德地图车辆通行时间预测的python实践

    一. 动机与意义 如今,随着人们生活水平的提升,私人汽车逐渐成为家庭中不可或缺的交通工具.而车辆的增多会直接导致城市道路的拥堵,大大提高车辆事故发生率.通过预测车辆在不同道路的通行时间,能够大致估计道 ...

  7. 百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

    坐标采集 前言 1.百度地图地理坐标拾取系统 2.位置选择插件 百度地图经纬度选择插件 默认参数配置 3.数据导入 4.地理编码 爬取百度webAPI 返回参数 前端封装转换函数 5.手机GPS定位 ...

  8. 基于高德地图JsAPI进行浏览器精确定位,实现手机端考勤打卡功能

    前言: 由于项目需求需要在项目中实现手机端(基于网页)考勤打卡功能,最初考虑使用H5自身定位功能,但尝试过后,效果很不稳定.然后尝试使用百度地图JsAPI,百度家的稳定倒是很稳定,没想到的是定位位置和 ...

  9. vue中基于echarts和基于高德地图的两种地图下钻与上浮方式

    ** vue中基于echarts和基于高德地图的两种地图下钻与上浮方式 ** 基于echarts的地图下钻与上浮(浙江省为例) 第一步:在<template>中构建承载echarts的do ...

  10. 南邮Android实验报告三:基于高德地图的综合应用

    实验三 基于高德地图的综合应用 一.目的要求 1.学会安卓应用中涉及位置服务时的解决方案. 2.练习在使用第三方插件时,遇到版本不兼容时的处理步骤和方法. 二.实验环境 1.硬件配置:Intel Co ...

最新文章

  1. nginx 转发慢_学习Nginx的正确姿势,多图详解助你更上一层楼!(干货收藏篇)...
  2. 【Linux】一步一步学Linux——enable命令(212)
  3. P4062 [Code+#1]Yazid 的新生舞会(线段树做法)
  4. vue-cli@2的原理解析
  5. python命令行解析_python命令行解析函数
  6. SuperMap加载三维模型数据(osgb格式)——以SuperMap iDesktopX 10i为例
  7. C语言学生管理程序输入错误,c语言编程,关于学生管理的程序(急急急)
  8. 雕刻机c语言程序,基于51单片机的激光雕刻机
  9. 曝一段十多年前的“情史”!
  10. 给IDEA换个酷炫的主题,这个有点哇塞啊!
  11. 国外支付(Paypal,Cybersource)
  12. 最快速的TeamTalk 服务器部署方
  13. 2022 IoTDB Summit:IoTDB PMC 曹高飞《Apache IoTDB 秒级扩容能力与存算分离实践》
  14. js之div跟随鼠标移动
  15. uniapp 画布绘制二维码,图片,文字的方法
  16. Kali Linux 下载、引导、安装
  17. CCF-CSP-202112-1/2:序列查询(新解)
  18. web自动化测试(一) 介绍 及 Xpath,Css 定位元素
  19. ZIP压缩包文件删除密码的方法
  20. Android端乐橙云SDK集成

热门文章

  1. 二级c语言 文件题,二级C语言题库文件.doc
  2. mysql8从入门到精通电子书_MySQL 8从入门到精通(视频教学版)
  3. 51test-day1【ofo测试第一天】
  4. python和c的语法区别_python和c语言语法有什么区别?
  5. Qt5开发从入门到精通——第一篇概述
  6. JSP编程技术3-服务器时钟示例
  7. javplayer 使用教程_「松下A6系列伺服使用手册」6.出现问题时
  8. 超好用的代码格式化工具Astyle使用
  9. HEX2BIN在WIN7下不能用之后
  10. jd反编译java_java反编译工具jd