MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位
 

  • 阅读:709
  • 回复:0
经纬度获取python脚本
lanweitu

鎵嬫満鍙风爜宸查獙璇�


 发短消息    关注Ta 

积分 55
帖子 11
威望 401 个
礼品券 0 个
专家指数 0
注册 2014-10-30
来自 北京
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2023-08-17 09:28:25  只看楼主  QQ

import math

import pandas as pd

import requests

import time

import os

import csv

import json

'''

为了保持准确性,物业点名称越具体越好

'''


x_pi = float(3.14159265358979324 * 3000.0 / 180.0)

# //pai

pi = float(3.1415926535897932384626)

# //离心率

ee = float(0.00669342162296594323)

# //长半轴

a = float(6378245.0)



# //百度转国测局

def bd09togcj02(bd_lon, bd_lat):

    x = (bd_lon - 0.0065)

    y = (bd_lat - 0.006)

    z = (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



# //国测局转百度

# def gcj02tobd09(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.0065

#     bd_lat = z * math.sin(theta) + 0.006

#     return bd_lng, bd_lat



# //国测局转84

def gcj02towgs84(lng, lat):

    dlat = transformlat(lng - 105.0, lat - 35.0)

    dlng = transformlng(lng - 105.0, lat - 35.0)

    radlat = lat / 180.0 * pi

    magic = math.sin(radlat)

    magic = 1 - ee * magic * magic

    sqrtmagic = 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 + dlat

    mglng = lng + dlng

    return lng * 2 - mglng, lat * 2 - mglat



# //经度转换

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(abs(lng))

    ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 * math.sin(2.0 * lng * pi)) * 2.0 / 3.0

    ret += (20.0 * math.sin(lat * pi) + 40.0 * math.sin(lat / 3.0 * pi)) * 2.0 / 3.0

    ret += (160.0 * math.sin(lat / 12.0 * pi) + 320 * math.sin(lat * pi / 30.0)) * 2.0 / 3.0

    return ret



# //纬度转换

def transformlng(lng, lat):

    ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * math.sqrt(abs(lng))

    ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 * math.sin(2.0 * lng * pi)) * 2.0 / 3.0

    ret += (20.0 * math.sin(lng * pi) + 40.0 * math.sin(lng / 3.0 * pi)) * 2.0 / 3.0

    ret += (150.0 * math.sin(lng / 12.0 * pi) + 300.0 * math.sin(lng / 30.0 * pi)) * 2.0 / 3.0

    return ret



def getWgs84xy(x, y):

    # //先转 国测局坐标

    doubles_gcj = bd09togcj02(x, y)

    # //(x 117.   y 36. )

    # //国测局坐标转wgs84

    doubles_wgs84 = gcj02towgs84(doubles_gcj[0], doubles_gcj[1])

    # //返回 纠偏后 坐标

    return doubles_wgs84


def baidu(addr):

    try:

        url = 'http://api.map.baidu.com/geocoding/v3/?'

        para ={'address':addr,

               'output': 'json',

               'ak':'BCgd5mFgfGuRArtGjsOBUnfbwrcoUVql'

               }

        req = requests.get(url,para)

        req = req.json()

        m = req['result']['location']

        g = f"{m['lng']},{m['lat']}"

        return g

    except Exception as e:

        return "数据有误"

if __name__ == '__main__':

    # path_file = r'C:UsersLenovoDesktopBD09-WGS84'

    # path_os = os.path.join(path_file, '待转数据.xlsx')

    # df3 = pd.read_excel(path_os)

    df3 = pd.read_excel('E:/满意度资料/爬边框/test/BD09-WGS84/待转数据.xlsx')

    df3['经纬度'] = df3['地址'].apply(baidu)

    # df3['经纬度'] = df3.apply(lambda x:baidu(x['地址']),axis=1)

    df3.to_excel('E:/满意度资料/爬边框/test/BD09-WGS84/转换结果.xlsx',index=False)

经纬度获取python脚本.txt



查看积分策略说明
附件下载列表:
2023-8-17 09:28:18  下载次数: 7
经纬度获取python脚本.txt (3.56 KB)
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 对本帖内容的看法? 我要点评


    作者的更多帖子
     

    快速回复主题    
    标题
    内容
    闁诲孩绋掗妵鐐电礊閿燂拷
    闁诲孩绋掗〃鍛般亹閿燂拷
    闁诲孩绋掗〃鍡涘汲閻旇櫣纾奸柣鏃€妞块崥鈧�
     上传资料请点左侧【添加附件】

    (勾选中文件为要删除文件)


    当前时区 GMT+8, 现在时间是 2025-05-18 00:20:41
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.734706 second(s), 18 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver