跨区域转换为一致UTM时出现问题

2024-04-26 08:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用python中的utm模块获得一组以米为单位的坐标,给定lat/long位置。如果位置跨越不同的区域,则地图将不正确。在检查了一些讨论之后,我还没有找到一个直接的解决方案

lat_points = [42.827990, 42.849890, 42.824294]
long_points = [95.9, 95.903, 96.01]
xy_meters = [utm.from_latlon(lat,long) for (lat, long) in zip(lat_points,long_points)]
for row in xy_meters:
    print(row)

结果显示,当区域跨越时,存在较大的间隙:

(737040.3354880156, 4745793.498913411, 46, 'T')
(737201.7056600684, 4748234.076861802, 46, 'T')
(255588.1599583785, 4745640.325228949, 47, 'T')

Tags: 模块infrom区域for地图单位解决方案
1条回答
网友
1楼 · 发布于 2024-04-26 08:45:14

好的,我认为这段代码按预期工作(交换包):

from pyproj import Proj
myProj = Proj("+proj=utm +zone=46T, +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
for lat, long in zip(lat_points,long_points):
    print(myProj(long, lat))

提供所需的:

(737040.3354579052, 4745793.4987486005)
(737201.7056297899, 4748234.076696485)
(746046.8172912733, 4745698.570316798)

相关问题 更多 >