怎么用python实现osm切片计算

这篇文章主要介绍“怎么用python实现osm切片计算”,在日常操作中,相信很多人在怎么用python实现osm切片计算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用python实现osm切片计算”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联专注于企业营销型网站、网站重做改版、泗洪网站定制设计、自适应品牌网站建设、H5响应式网站商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为泗洪等各大城市提供网站开发制作服务。

一般的地图都是通过在后台发布切片,前端的引擎读取进行展示,地图切片有些是用经纬度切的,有些是用谷歌的墨卡托切的,所以根据一定的坐标范围和缩放等级,就能计算其中的切片横纵顺序,得到详细的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切片计算

到此,关于“怎么用python实现osm切片计算”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


新闻名称:怎么用python实现osm切片计算
标题URL:http://pwwzsj.com/article/gjhech.html