本文整理了一些地理坐标系之间的转换(python代码)
pip install pyproj
import math
from pyproj import CRS
from pyproj import Transformer
from pyproj import _datadir, datadir # 加上这个linux打包执行不报错
crs_WGS84 = CRS.from_epsg(4326) # WGS84地理坐标系
crs_WebMercator = CRS.from_epsg(3857) # Web墨卡托投影坐标系
cell_size = 0.009330691929342804 # 分辨率(米),一个像素表示的大小(24级瓦片)
origin_level = 24 # 原始瓦片级别
EarthRadius = 6378137.0 # 地球半径
tile_size = 256 # 瓦片大小
def GK2WGS84(x_y, d):
"""
高斯坐标转WGS84坐标
:param x_y: 高斯坐标x,y集合
:param d: 带号
:return: 纬度,经度集合
"""
format = '+proj=tmerc +lat_0=0 +lon_0=' + str(d * 3) + ' +k=1 +x_0=500000 +y_0=0 +ellps=WGS84 +units=m +no_defs'
crs_GK = CRS.from_proj4(format)
transformer = Transformer.from_crs(crs_GK, crs_WGS84)
lat_lon = transformer.itransform(x_y)
return lat_lon
def WGS84ToWebMercator(lat_lon):
"""
WGS84坐标转web墨卡托坐标
:param lat_lon: 纬度,经度集合
:return: web墨卡托坐标