您好,登录后才能下订单哦!
这篇文章主要介绍“怎么用python实现osm切片计算”,在日常操作中,相信很多人在怎么用python实现osm切片计算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用python实现osm切片计算”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一般的地图都是通过在后台发布切片,前端的引擎读取进行展示,地图切片有些是用经纬度切的,有些是用谷歌的墨卡托切的,所以根据一定的坐标范围和缩放等级,就能计算其中的切片横纵顺序,得到详细的z(缩放)、x(横向)、y(纵向)数字,再根据基础的服务器url,就可以将本张切片下载到本地,多张切片合并成一张,赋予坐标信息,就变成地图影像了,一般的地图下载工具也是按照这个原理进行下载生成的。
OSM是一个开源开放的地图,它的地图切片是按照经纬度切的,即EPSG:4326的,在经纬度计算切片的时候,并不需要把坐标转换成web墨卡托的坐标,下边分享一个根据经纬度坐标计算切片顺序的代码(python):
def deg2num(lat_deg, lon_deg, zoom):
lat_rad = math.radians(lat_deg)
n = 2.0 ** zoom
xtile = int((lon_deg + 180.0) / 360.0 * n)
ytile = int((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n)
return (xtile, ytile)
传入经纬度坐标和缩放级别,就能找到坐标是在哪张切片上,经度方向是等分的,这个在计算的时候就比较简单,纬度是在高纬度的距离变窄,所以,要通过一个复杂的数学公式计算,等级越高,切片数量越多,下载的切片就越多,是按照平方的数量进行增加的。
下载的切片坐标范围,并不一定是和传入的坐标范围相同,所以,地图下载器有时也是,合并的影像并不是传入的四个范围,这个在后期要有一定地图裁切。
一张下载的切片,合并的时候可以使用gdal等类库,这对合并和计算合并完成后的地图四至有相当方便的帮助。
到此,关于“怎么用python实现osm切片计算”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。