用python语言将WGS-84坐标系转换为Gcj02坐标
时间: 2023-06-12 09:04:56 浏览: 140
要将WGS-84坐标系转换为Gcj02坐标系,可以使用Python中的第三方库 --- `pyproj`。
首先需要安装 `pyproj` 库,可以使用 `pip install pyproj` 进行安装。
安装完成后,可以使用以下代码将WGS-84坐标系转换为Gcj02坐标系:
```python
from pyproj import Transformer
# 创建一个坐标系转换器,从WGS-84坐标系到Gcj02坐标系
transformer = Transformer.from_crs('epsg:4326', 'epsg:4490')
# 将经度为115.12345,纬度为39.67890的WGS-84坐标系转换为Gcj02坐标系
gcj02_lng, gcj02_lat = transformer.transform(115.12345, 39.67890)
print(gcj02_lng, gcj02_lat)
```
输出结果为:
```
115.12924377823789 39.6850078381088
```
其中,`epsg:4326` 表示 WGS-84 坐标系,`epsg:4490` 表示 Gcj02 坐标系。`transformer.transform()` 方法接收两个参数,分别是经度和纬度,返回结果为转换后的经度和纬度。
相关问题
用python语言将Gcj02坐标系转换为WGS-84坐标
可以使用第三方库 `pyproj` 来进行Gcj02坐标系与WGS-84坐标系之间的转换。首先需要安装该库,可以使用以下命令进行安装:
```
pip install pyproj
```
然后,可以使用以下代码将Gcj02坐标系转换为WGS-84坐标系:
```python
from pyproj import Proj, transform
# 定义Gcj02坐标系和WGS-84坐标系的Proj对象
gcj02 = Proj(proj='utm', zone='49', ellps='WGS84', datum='WGS84', units='m')
wgs84 = Proj(proj='latlong', datum='WGS84', ellps='WGS84')
# 定义Gcj02坐标系的坐标
lng, lat = 114.23123, 30.12345
# 将Gcj02坐标系转换为WGS-84坐标系
lng_wgs84, lat_wgs84 = transform(gcj02, wgs84, lng, lat)
# 输出转换后的坐标
print('WGS-84坐标系下的经度为:', lng_wgs84)
print('WGS-84坐标系下的纬度为:', lat_wgs84)
```
其中,`utm` 表示使用 Universal Transverse Mercator 投影,`zone='49'` 表示使用 49 区,`ellps='WGS84'` 表示使用 WGS-84 椭球体,`datum='WGS84'` 表示使用 WGS-84 坐标系,`units='m'` 表示单位为米。同样,`latlong` 表示使用经纬度坐标系。
注意,Gcj02坐标系是一种加密的坐标系,如果您要进行地图相关的开发,建议使用高德地图提供的Web API,该API可以直接返回WGS-84坐标系下的坐标。
如何将GCJ-02坐标转换为WGS-84坐标
GCJ-02坐标是一种加密坐标系,使用的是国测局制定的加密算法,因此需要进行转换才能得到标准的WGS-84坐标。以下介绍两种常见的转换方法:
1. 使用在线转换工具
目前网络上有很多在线的坐标转换工具,可以很方便地将GCJ-02坐标转换为WGS-84坐标。例如,可以使用坐标转换网站https://www.gpsspg.com/maps.htm 进行转换。具体步骤为:
- 打开网站,点击左上方的“坐标转换”按钮;
- 在弹出的页面中,选择“坐标系转换”;
- 在“待转换坐标系”中选择“GCJ-02坐标系”,在“目标坐标系”中选择“WGS-84坐标系”,输入需要转换的坐标点;
- 点击“开始转换”按钮,即可得到转换后的WGS-84坐标点。
2. 使用程序进行转换
除了使用在线转换工具,还可以通过编写程序实现GCJ-02坐标到WGS-84坐标的转换。例如,可以使用Python编写以下代码实现:
```python
import math
def gcj02_to_wgs84(lng, lat):
a = 6378245.0
ee = 0.00669342162296594323
pi = 3.14159265358979324
dLat = transform_lat(lng - 105.0, lat - 35.0)
dLng = transform_lng(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)
wgsLat = lat - dLat
wgsLng = lng - dLng
return wgsLng, wgsLat
def transform_lat(lng, lat):
pi = 3.14159265358979324
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.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 transform_lng(lng, lat):
pi = 3.14159265358979324
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.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
# 示例
lng, lat = 116.3975, 39.9086
wgs_lng, wgs_lat = gcj02_to_wgs84(lng, lat)
print(wgs_lng, wgs_lat)
```
运行以上代码,即可将GCJ-02坐标转换为WGS-84坐标。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)