一、原理

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

2.经纬度格式转换

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

2.1.1 十进制换度分秒

例:经纬度115.46513298108795,38.83474699749353

2.1.2 度分秒换十进制

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调用高德api进行图片定位

1.main.py源码

代码如下(示例):

2.position_utils.py源码

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

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

运行结果:

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

运行截图展示:

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