关于51ditu

<!--[if !supportLists]-->1.         <!--[endif]-->缩放等级

使用的比例级别总共有0-12级共13个级别,他们和实际的比例尺的对应关系分别是:

0级 -------------------- 1:2,500

1级 -------------------- 1:5,000

2级 -------------------- 1:10,000

3级 -------------------- 1:25,000

4级 -------------------- 1:50,000

5级 -------------------- 1:100,000

6级 -------------------- 1:250,000

7级 -------------------- 1:500,000

8级 -------------------- 1:1,000,000

9级 -------------------- 1:2,500,000

10级 ------------------- 1:5,000,000

11级 ------------------- 1:10,000,000

12级 ------------------- 1:50,000,000

简单的说,0级地图最详细,12级地图最简单。

以上是其官方发布的数据。

<!--[if !supportLists]-->2.         <!--[endif]-->

与Google的比较

51地图和Google maps都开放了API,有人结合两者的API把它们集成到一块,发现两者的经纬度吻合的非常好,我想这也主要是在大比例尺地图下只要两者的切割方法相同就可以做到的,故为了以后能更好的兼容并向领先者学习我们也争取达到这种比较好的吻合效果。

但分析两者的切割图片发现Google的是256*256(像素),而51ditu是128*128(像素)。如下图(1)、图(2)两幅图(两幅图均没有包含到最南端的曾母暗沙):

由于两者是采用的不同的投影方式,故地图在外形上有着比较大的差别,但应该注意的是每一小片上只是面积上的差别,通俗点来讲要有都有要没有都没有;由于两者每一幅图片是不等的,在实际中Google的每一图幅的面积应该是51ditu的4倍,但我们将两者放在同样大小的比例中发现两者吻合的比较好,由此也可推测随着比例的放大吻合程度将会更好,也就是说两者的切割方法是相同的,只不过导出图片的大小不同而已。

<!--[if !supportLists]-->3.         <!--[endif]-->

坐标系统

同样可以假设51ditu在每一缩放等级下的地图上也都建立了一个坐标系,不同的是其坐标原点为(西经11.25度,北纬0度),正方向分别为向东向北,跨度范围基本上就是覆盖中国的国土面积,即经度跨度为【67.5,135】,纬度跨度为【0,56.25】,而中国领土北起漠河以北的黑龙江江心(北纬53°30′),南到南沙群岛南端的曾母暗沙(北纬4°),跨纬度49度多;东起黑龙江与乌苏里江汇合处(东经135°05′),西到帕米尔高原(东经73°40′),跨经度60多度。

拟采用的方案

<!--[if !supportLists]-->1.         <!--[endif]-->方案简述

由于Google maps并没有提供大比例尺下的中国地图,故将其作为参照系不是一个很好的选择,为便于以后的比较,我们采用与51ditu相同的坐标系统,即编号方式。

如上图(2)所示,小图片12-1-7.png,是缩放等级12之下的一副图片,1是纬度方向上的序号,7是经度方向上的序号,从以上分析我们得知,缩放等级12之下,整个地球的切图共是 <!--[if !vml]--><!--[endif]-->* <!--[if !vml]--><!--[endif]-->张,在投影影响的基础上,每个图片的跨度为11.25*11.25度,图片12-1-7.png左下角点的经纬度为(67.5,11.25),很明显(67.5+11.25)/11.25=7,11.25/11.25=1。这样我们就得到了切割图片序号的计算公式,一般化如下:

在缩放等级为n之下,切割图片的边长(设为d)d=360度/ <!--[if !vml]-->2^(17-n)<!--[endif]-->,若小图片左下角坐标为(x,y),并设经度方向上的序号为bx,纬度方向上的序号为by,可得到其表达式为bx=(x+11.25)/d;by=y/d.。

由于我们只是针对中国范围,故取经度跨度为【67.5,135】,纬度跨度为【0,56.25】,在切割时可以适当延展,延展单位以11.25为准。

<!--[if !supportLists]-->2.         <!--[endif]-->命名规则、存储方案

在最大比例尺即缩放等级为0之下,取经度跨度为【67.5,135】,纬度跨度为【0,56.25】,可以计算出共需切割的图片数量为 <!--[if !vml]-->2^17<!--[endif]-->*(67.5/360)*<!--[if !vml]-->2^17<!--[endif]-->*(56.25/360)=131072*(3/16)*131072*(5/32)=112,442,880.缩放等级n之下,所需图片数量的计算公式为2^(17-n)<!--[endif]--><!--[endif]-->*(67.5/360)* <!--[if !vml]-->2^(17-n)<!--[endif]--><!--[endif]-->*(56.25/360)=15* <!--[if !vml]-->2^(25-2n)<!--[endif]-->(0<=n<=12)

以下为各比例尺之下的对应关系

缩放级别          比例尺              图幅数           存储空间(4K/幅)

0级 -------------------- 1:2,500 --------------------503,316,480 --------------------1920G

1级 -------------------- 1:5,000 -------------------- 125,829,120 --------------------480G

2级 -------------------- 1:10,000 --------------------31,457,180 --------------------120G

3级 -------------------- 1:25,000 --------------------7,864,320 --------------------30G

4级 -------------------- 1:50,000 --------------------1,966,080 --------------------7.5G

5级 -------------------- 1:100,000 --------------------491,520 --------------------1.875G

6级 -------------------- 1:250,000 --------------------122,880……………………………

7级 -------------------- 1:500,000 --------------------30,720……………………………

8级 -------------------- 1:1,000,000 --------------------7,680……………………………

9级 -------------------- 1:2,500,000 --------------------1,920……………………………

10级 ------------------- 1:5,000,000 --------------------480……………………………

11级 ------------------- 1:10,000,000 -------------------120……………………………

12级 ------------------- 1:50,000,000 -------------------30……………………………

由以上分析可见在大比例尺下若全部生成,其数量是很巨大的,考虑到某些大比例尺地图只是在某些地区或特殊要求时是必须的,我们没有必要全部生成,只需生成规定经纬度范围内的某一缩放级别下的地图。但即使这样小缩放级别下的图幅数量仍然不小,所以我们应该分区域在不同文件夹下存放。从级别n到级别n+1,图片数量后者是前者的4倍,即放大一个级别原级别一张图片裂变为四张,这样我们可以借鉴四杈树的组织形式,即若树的深度为N,深度为N-1的节点子节点均为30个,其余节点子节点为四个(当深度为1时,根结点子节点为5*6=30个),树的深度与缩放级别的对应关系为N=13-n。

树的节点的命名即为对应文件夹的名称,根结点即以缩放级别命名,叶节点对应图片以形如“bx-by.png”的形式命名,其它节点则是形如“0-0”、“0-1”、“1-0”、“1-1”的形式命名。

这样一来生成图片的时候就有一个路径判断和生成的问题。在确定了经度跨度为【67.5,135】,纬度跨度为【0,56.25】,并且在最小比例尺(缩放等级为12)之下我们已知图片是5*6张,即经度方向为6,纬度方向为5,这两个值很重要直接影响到我们的命名,当然前提变了这个值也随着变了。我们制定规则如下:

如前树的深度为N,经度方向上的序号为bx,纬度方向上的序号为by。则当1< SPAN>时,经度方向上的节点值Lng=ToString(((bx-7*N)/6)%2), 纬度方向上的节点值Lat=ToString((by/5)%2),则节点名称命名为Lng+”-”+Lat。

Google maps及51ditu的图片切割及存储方法2相关推荐

  1. 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]

    为什么要取这样的一个题目呢?主要是因为今天去了一家公司和他们谈了谈,本来是指望做兼职的,谈到最后当然是不成了.去谈的是地图制作(可兼职)一职,要求是地图制图经验,最后加了个有WEBGIS开发经验.本来 ...

  2. Android系统Google Maps开发实例浅析

    Google Map(谷歌地图)是Google公司提供的电子地图服务.包括了三种视图:矢量地图.卫星图片.地形地图.对于Android系统来说,可以利用Google提供的地图服务来开发自己的一些应用. ...

  3. Google Maps和GIS开发资源收集

    Google Maps JQuery Maps google map是怎样工作的 Google Map API基本概念 Google Maps API编程资源大全 google map限制地图缩放级别 ...

  4. Google Maps地图投影全解析

    原文出处:http://www.cnblogs.com/LionGG/archive/2009/04/20/1439905.html Google Maps.Virtual Earth等网络地理所使用 ...

  5. maps-api-v3_利用Google Maps API发挥创意

    maps-api-v3 您已经设计了一个闪亮的新网站: 仔细选择颜色,版式和照片,以完美反映公司的品牌形象. 然后您的客户要求您添加地图. 当然,您可以使用地图构建"向导",例如每 ...

  6. 【转】ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上

    如果要将自己的数据与ArcGIS online的数据叠加使用,那么:1.应该选择后者为Primary Map Resource(有一种情况下,可以将自己的服务作为Primary Map Resourc ...

  7. 设计自己的地图叠加到 Google Maps或者 MicroSoft Vitual Earth

    源贴 :http://hi.baidu.com/wiselyman/blog/item/d2dbd6f9dc83dc51242df2e2.html 英文源贴:http://webhelp.esri.c ...

  8. ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上

    http://hi.baidu.com/wiselyman/blog/item/d2dbd6f9dc83dc51242df2e2.html 我自己有个厂区的地图是cad的,转换为shape格式.然后将 ...

  9. ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上[转]

    ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上 我自己有个厂区的地图是cad的,转换为shape格式.然后将这个小地图正确的放置到google ...

  10. Google Maps嵌入参数

    转自:http://www.oulan.com/topics/google-maps-embed-parameters.html Google Maps嵌入参数 发表回复 最近接了个不赚钱的活.需要嵌 ...

最新文章

  1. python3 List 中的字符串合并
  2. 深入理解计算机系统-之-数值存储(六)--以不同的方式窥视内存
  3. 数据可视化项目落地复盘
  4. SAP S/4HANA装到Docker里的镜像有多大
  5. 解决安装Weblogic domain卡住问题(Primeton BPS)
  6. javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性
  7. EJB的beans们
  8. dll 文件创建与使用
  9. Python_study_day_1_while_if
  10. paip.程序调试的几种方式大总结
  11. 非标自动化3D选型软件三维SW合集solidworks标准件机械设计电机库
  12. Linux编译安装PHP7.4.24及启动
  13. python运行按钮灰色_点击后,tkinter菜单按钮变灰了
  14. ArcGISPro通视分析之视线分析
  15. 大学生为什么要学Linux?Linux有什么优点?
  16. 修改web服务器的网站主目录,Tomcat中更改网站根目录和默认页的配置方法
  17. Jarvisoj_WP
  18. 软件开发好用的工具推荐
  19. Mysql 避免使用 IN 和 NOT IN
  20. 如何判断域名的潜力和价值?

热门文章

  1. PHP下载远程图片的3个方法
  2. 适合打游戏的计算机,最适合玩游戏的笔记本电脑 广受好评的三款笔记本
  3. Flutter 倒计时
  4. Python网络爬虫:下载漫画的正确姿势
  5. 项目管理工具project软件学习(二) - 自定义日历【标准+节假日】
  6. python统计词频并进行可视化显示_python统计词频
  7. html阅读是什意思,HTML是什么意思?什么是HTML5?什么是H5? | 前端面试题
  8. ODI 12C 数据元表主资料库67个表 工作资料库153个表
  9. 百度BAE部署微信开发环境
  10. 计算机联锁中JDF是什么组合,2019年新准线海勒斯壕南站站改工程招标公告