欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用Python提取图片经纬度并锁定拍照地点

程序员文章站 2024-03-27 17:09:58
一、原理1.图片必须具有经纬度信息2.经纬度格式转换2.1 gps点坐标的两种表示方式(误差还是有的)2.1.1 十进制换度分秒例:经纬度115.46513298108795,38.834746997...

一、原理

1.图片必须具有经纬度信息

利用Python提取图片经纬度并锁定拍照地点

2.经纬度格式转换

2.1 gps点坐标的两种表示方式(误差还是有的)

2.1.1 十进制换度分秒

例:经纬度115.46513298108795,38.83474699749353

利用Python提取图片经纬度并锁定拍照地点

2.1.2 度分秒换十进制

利用Python提取图片经纬度并锁定拍照地点

2.1.3 实际距离换算

地球子午线长是39940.67公里,纬度改变一度合110.94公里,一分合1.849公里,一秒合30.8米,赤道圈是40075.36公里,北京地区纬在北纬40度左右,纬度圈长为40075*sin(90-40),此地经度一度合276公里,一分合1.42公里一秒合23.69米。

地球赤道上环绕地球一周走一圈共 40075.04公里,而這一圈分成360,而每1°(度)有60’,每一度一秒在赤道上的长度计算如下:

40075.04km/360°=111.31955km

111.31955km/60’=1.8553258km=1855.3m

而每一分又有60秒,每一秒就代表 1855.3m/60=30.92m

任意两点距离计算公式为:

d=111.12cos{1/[sinφasinφb十 cosφacosφbcos(λb—λa)]}

其中:

  • a点经度,纬度分别为λa和φa,
  • b点经度、纬度分别为λb和φb,
  • d为距离。

结论

1°经度差对应的东西方向的距离是与其纬度有密切关系的。

赤道上经度相差1°对应的弧长大约是111千米

具体数据如下:

纬度 1°经度差对应的东西距离

20° 104公里

26° 100公里

30° 96公里

36° 90公里

40° 85公里

44° 80公里

51° 70公里

1、经纬度在不同地区,每度距离差是不同的,如果假定地球是完美的球体(这样假设误差不是很大)的话,纬度为 b 的地区:

  • 纬度变化一度,球面南北方向距离变化:πr/180 …111.7km
  • 经度变化一度,球面东西方向距离变化:πr/180cosb …111.7cosb
  • 比如北京 b = 40、cosb = 0.766,经度变化1度,则东西方向距离变化 85.567km

2、不同经度不一样,在南极、北级,所有的经度线都汇集在南、北极的点上,经度之间的距离为0,在赤道,经度之间的距离最大。

  • 经度变化一度,球面东西方向距离变化:πr/180cosb …111.7cosb (r为地球半径,b为纬度)
  • 纬度之间的距离是一样的,纬度变化一度,球面南北方向距离变化:πr/180 …111.7km (r为地球半径)

3.根据经纬度定位

高德坐标拾取

百度坐标拾取

利用Python提取图片经纬度并锁定拍照地点

二、python调用高德api进行图片定位

1.main.py源码

代码如下(示例):

2.position_utils.py源码

代码如下(坐标转换示例):

将需要定位的图片放到指定路径下,运行main.py

利用Python提取图片经纬度并锁定拍照地点

运行结果:

照片拍摄日期是:
2021-10-22
获取到经度、纬度是:115.46513298108795,38.83474699749353
他当前位置在:河北省保定市莲池区南大园乡朝阳南大街2166号长城家园南区

运行截图展示:

利用Python提取图片经纬度并锁定拍照地点

以上就是利用python提取图片经纬度并锁定拍照地点的详细内容,更多关于python提取图片经纬度的资料请关注其它相关文章!