1、由经纬度计算谷歌卫星地图中瓦片Tile地址x/y/z

Google卫星地图是由256x256大小的jpg图片拼接而成,每块图片的URL格式为“http://kh.google.com/kh?v=3&t=trstrq”样。参数v与图片关系不大,主要是参数t起作用,它是“qrst”4个字符排列而成的字符串。为获取某经纬度的URL,就需要把经纬度转化为“qrst”字符串。 Google卫星地图在zoom=1时,全球就为一个256x256的图片,它的中心经纬度为(0,0),URL为“http://kh.google.com/kh?v=3&t=t”。zoom=2时裂化为4块,每块的编号为:左上”t=tq”,右上”t=tr”,右下“t=ts”,左下”t=tt”。依此类推,每放大一倍,每一小块都裂分为四,从左上到右下顺时针按qrst编号,裂分后的编码为裂分前的编号上小块的编号。

计算代码如下:

function GetQuadtreeAddress(long, lat)
{var PI = 3.1415926535897;
var digits = 18; // how many digits precision
// now convert to normalized square coordinates
// use standard equations to map into mercator projection
var x = (180.0 + parseFloat(long)) / 360.0;
var y = -parseFloat(lat) * PI / 180; // convert to radians
y = 0.5 * Math.log((1+Math.sin(y)) / (1 - Math.sin(y)));
y *= 1.0/(2 * PI); // scale factor from radians to normalized
y += 0.5; // and make y range from 0 - 1
var quad = "t"; // google addresses start with t
var lookup = "qrts"; // tl tr bl br
while (digits–)
{// make sure we only look at fractional part
x -= Math.floor(x);
y -= Math.floor(y);
quad = quad + lookup.substr((x >= 0.5 ? 1 : 0) + (y >= 0.5 ? 2 : 0), 1);
// now descend into that square
x *= 2;
y *= 2;
}
return quad;
}

2、中国主要地图商的瓦片编号流派

地图商 瓦片编码 图层 链接
高德地图 谷歌XYZ 道路 http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x=105&y=48&z=7
高德地图 谷歌XYZ 卫星 http://webst04.is.autonavi.com/appmaptile?style=6&x=843&y=388&z=10
谷歌地图 谷歌XYZ 道路 http://mt2.google.cn/vt/lyrs=m&hl=zh-CN&gl=cn&x=105&y=48&z=7
谷歌地图 谷歌XYZ 卫星 http://mt2.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x=105&y=48&z=7
谷歌地图 谷歌XYZ 地形 http://mt0.google.cn/vt/lyrs=t&hl=zh-CN&gl=cn&x=420&y=193&z=9
OpenStreetMap 谷歌XYZ 道路 http://a.tile.openstreetmap.org/7/105/48.png
腾讯地图 TMS 道路 http://rt1.map.gtimg.com/realtimerender?z=7&x=105&y=79&type=vector&style=0
Bing地图 QuadTree 道路 http://r1.tiles.ditu.live.com/tiles/r1321001.png?g=100&mkt=zh-cn
百度地图 百度XYZ 道路 http://online4.map.bdimg.com/tile/?qt=tile&x=98&y=36&z=9&;styles=pl&scaler=1&udt=20170406
百度地图 百度XYZ 交通 http://its.map.baidu.com:8002/traffic/TrafficTileService?level=19&x=99052&y=20189&time=1373790856265&label=web2D&;v=017

3、地图底图瓦片

1)瓦片编号
使用XYZ这样的坐标来精确定位一张瓦片。即XY表示某个层级内的平面,X为横坐标,Y为纵坐标,类似于数学上常见的笛卡尔坐标系。Z一般表示缩放比率zoom,不同地图商定义有分歧、这是目前主流互联网地图商分歧最大的地方。总结起来分为四个流派:

谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。

TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。

QuadTree:微软Bing地图使用的编码规范,Z的定义与谷歌相同,同一层级的瓦片不用XY两个维度表示,而只用一个整数表示,该整数服从四叉树编码规则

百度XYZ:Z从1开始,在最高级就把地图分为四块瓦片;XY的原点在经度为0纬度位0的位置,X从左向右,Y从下向上。

2)各种地图加载x/y/z路径
高德地图
目前高德的瓦片地址有如下两种:
新版地址:http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7和
老版地址:http://webst0{1-4}.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}

高德新版的参数设置:
lang可以通过zh_cn设置中文,en设置英文
size基本无作用;
scl设置标注还是底图,scl=1代表注记,scl=2代表底图(矢量或者影像);
style设置影像和路网,style=6为影像图,style=7为矢量路网,style=8为影像路网。

总结:
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7 为矢量图(含路网、含注记)
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=7 为矢量图(含路网,不含注记)
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=6 为影像底图(不含路网,不含注记)
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=6 为影像底图(不含路网、不含注记)
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8 为影像路图(含路网,含注记)
http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8 为影像路网(含路网,不含注记)

天地图
地图瓦片获取:
http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&tk=您的密钥

图层名称 服务地址 投影类型
矢量底图 http://t0.tianditu.gov.cn/vec_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/vec_w/wmts?tk=您的密钥 球面墨卡托投影
矢量注记 http://t0.tianditu.gov.cn/cva_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/cva_w/wmts?tk=您的密钥 球面墨卡托投影
影像底图 http://t0.tianditu.gov.cn/img_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/img_w/wmts?tk=您的密钥 球面墨卡托投影
影像注记 http://t0.tianditu.gov.cn/cia_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/cia_w/wmts?tk=您的密钥 球面墨卡托投影
地形底图 http://t0.tianditu.gov.cn/ter_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/ter_w/wmts?tk=您的密钥 球面墨卡托投影
地形注记 http://t0.tianditu.gov.cn/cta_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/cta_w/wmts?tk=您的密钥 球面墨卡托投影
境界(省级以上) http://t0.tianditu.gov.cn/ibo_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/ibo_w/wmts?tk=您的密钥 球面墨卡托投影
矢量英文注记 http://t0.tianditu.gov.cn/eva_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/eva_w/wmts?tk=您的密钥 球面墨卡托投影
影像英文注记 http://t0.tianditu.gov.cn/eia_c/wmts?tk=您的密钥 经纬度投影
http://t0.tianditu.gov.cn/eia_w/wmts?tk=您的密钥 球面墨卡托投影
天地图地图服务二级域名包括t0-t7,您可以随机选择使用,如http://t2.tianditu.gov.cn/vec_c/wmts?tk=您的密钥

谷歌地图
http://mt0.google.cn/vt/lyrs=s&x=0&y=0&z=1
z即为瓦片的层次,0层覆盖全球;y为行,从上往下为02^z-1;x为列,从左往右依次为02^z-1
地址中mt0.google.cn为服务器地址,可用的包括mt1.google.cn、mt2.google.cn、mt3.google.cn等。
lyrs=s为地图类型,如下:
m:路线图
t:地形图
p:带标签的地形图
s:卫星图
y:带标签的卫星图
h:标签层(路名、地名等)

OpenStreetMap
‘http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png’

雅虎地图
https://{0-3}.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/512/png8?lg=ENG&ppi=250&token=TrLJuXVK62IQk0vuXFzaig%3D%3D&requestid=yahoo.prod&app_id=eAdkWGYRoc4RfxVo0Z4B

关于使用X/Y/Z的方式加载地图Tile瓦片的知识总结相关推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——(13)、图层扩展方式加载Google地图...

    1.前言 http://mt2.google.cn/vt/lyrs=m@225000000&hl=zh-CN&gl=cn&x=420&y=193&z=9& ...

  2. 使用jQuery和YQL,以Ajax方式加载外部内容

    我们来看看怎样使用jQuery,以Ajax方式加载外部(其他域上)的内容.这里的所有代码都可以从GitHub下载,也可以在这个演示页面中获取,因而不用复制粘贴了. OK,Ajax通过jQuery是很容 ...

  3. Android NDK下STD库share static方式加载 (so库混乱调用问题)

    结论 -DANDROID_STL=c++_shared 有该选项 share方式加载STL,打包的so库不含有STD代码 没该选项 static方式加载STL. // 打so库的build.gradl ...

  4. 使用SDWebImage淡入淡出的方式加载图片

    使用SDWebImage淡入淡出的方式加载图片 效果: 请通过以下方式下载源码: 找到它修改文件的地方: 以下是使用源码: // // ViewController.m // SDWebImageFa ...

  5. 【js】【cornerstone】cornerstone使用url方式加载图像

    [js][cornerstone]cornerstone使用url方式加载图像 引入cornerstoneWebImageLoader loadImage 引入cornerstoneWebImageL ...

  6. post方式加载iframe

    我们平常使用iframe时,直接设定src属性只能是get请求方式 ,get请求的参数大小有限制 如何实现即使用iframe又能通过post请求 两种方式 ajax使用post请求返回页面,直接将返回 ...

  7. Unity两中方式加载图片

    看到草羊发的图片,也是真懒. 想起来当时写天气预报现在都忘干净了,好记性不如烂笔头,还是应该多记.自己打下来好了 using System; using System.Collections; usi ...

  8. layui信息加载流的方式加载数据

    SSM项目中使用layui信息加载流的方式加载数据 这里首先jsp页面来一个div容器,这里数数据显示的地方 //css样式: <style type="text/css"& ...

  9. cesium采用primitive方式加载geojson数据

    cesium采用primitive方式加载geojson数据 cesium加载geojson数据有自带的接口GeoJsonDataSource和演示 示例,使用的是entity方式来加载数据,而ent ...

最新文章

  1. SDN/NFV步入规模部署期 运营商拓智能化成大势所趋
  2. 分布式系统设计原理与方案Dubbo+Zookeeper+Spring整合
  3. 解决 Android ping IPv6 地址显示 network is unreachable 的问题
  4. 软测homework2
  5. python基础 list和tuple
  6. 现代软件工程系列 学生的精彩文章 (4) 为用户服务
  7. python ping利用线程池获取在线设备
  8. MongoDB工具介绍
  9. Jenkins快速介绍及自动化构建实战
  10. python基础语法加爬虫精进_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...
  11. (十六)51单片机——红外遥控
  12. 可视化远程管理系统保障工地施工安全解决方案
  13. java maven 混淆_maven混淆Java代码
  14. a5m2使用方法 mysql_反転
  15. 各平台电脑开启虚拟化的方法
  16. C语言——伸缩型数组成员
  17. 机器学习(线性回归实训)------波士顿房价
  18. Enable VT-x in your BIOS security settings, ensure that HAXM is installed properly
  19. taskkill掉带空格的windowtitle
  20. 智芯传感微差压气体压力传感器在CPAP治疗中发挥关键作用

热门文章

  1. mac系统正在计算机,苹果电脑mac出现死机问题如何解决?
  2. 黑色星期五c语言程序,第一届蓝桥杯C/C++组编程题1 黑色星期五
  3. js,工具方法,正则表达式判断是否为英文单词
  4. QT5.9.0配置opencv
  5. android 群控 网络 adb,逍遥安卓模拟器群控源码
  6. webrtc详细教程
  7. 2023年吉林大学英语语言文学考研上岸前辈初复试备考经验指导
  8. 怎么确定步进电机的步距角
  9. matlab:基本操作与矩阵输入
  10. -bash: java: command not found (Linux)