经纬度和距离转换 您所在的位置:网站首页 经纬度换算距离 经纬度和距离转换

经纬度和距离转换

2024-06-23 13:28| 来源: 网络整理| 查看: 265

工作中我们经常遇到1经度或1纬度对应的距离,以及有了距离相应的经纬度差是多少

1、1公里对应的经纬度差

如果地球是个规则的球体,其周长是40076千米,那么1个360度的经度圈周长也是40076千米(和赤道圈一样),推断出1度经度的距离是40076/360=111千米;而1纬度的距离和它所在的纬度带有关。

import numpy as np import math # 区域范围 bound = {} bound['min_lon'] = 102.2 # min_lon bound['min_lat'] = 24.5 # min_lat bound['max_lon'] = 103.5884 # max_lon bound['max_lat'] = 26.5436 # max_lat """ 目的:将此区域划按照1公里网格进行划分 转换:因为此处区域单位是经纬度,所以需要将距离(1公里)转换成经纬度 """ grid_length=1 #网格边长是1公里 mid_lat=(bound['min_lat']+bound['max_lat'])/2#中间纬度 lon_to_km=111*np.cos(math.pi*mid_lat/180) #1经度差距离 角度转弧度: π/180×角度 1度纬度弧长=111*cos(纬度),1度弧长相当于1度経度差 lat_to_km=111 #1纬度差距离等于1经度长度 length_lon=grid_length/lon_to_km #1公里对应経度差 length_lon=grid_length/lat_to_km #求此区域1公里对应的経度差、纬度差 grid_lon_arange=np.arange(bound['min_lon'],bound['max_lon'],lon_to_km) grid_lat_arange=np.arange(bound['min_lat'],bound['max_lat'],lon_to_km)

2、有了距离求相应的经纬度差 from scipy.stats import norm # 提供高斯噪声 import numpy as np import math usages=np.array([[102.705443, 25.08218 ], [102.919635, 25.086187], [102.711445, 25.064534], [102.652288, 25.093385], [102.638036, 25.07871 ], [102.816516, 24.983468]]) service_length=1 #标准差等于服务半径 min_lat=usages[0][1] max_lat=usages[len(usages)-1][1] mid_lat=(min_lat+max_lat)/2 bias1 = norm.rvs(scale=service_length, size=len(usages)) #经度偏离位置 bias1_lon=bias1*(1/(111*np.cos(math.pi*mid_lat/180))) bias2 = norm.rvs(scale=service_length, size=len(usages)) #纬度偏离位置 bias2_lat=bias2*(1/111) usages=usages+np.array([bias1_lon,bias2_lat]).T

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有