返回首页

简介
这是我的谷歌地图是如何工作的分析,以及专门的瓷砖是如何编码。谷歌地图使用预渲染,可以用一个简单的URL获得的瓷砖。本文介绍了如何建立一个从它的地理坐标(经度/纬度)瓷砖的URL。地图平铺编码
谷歌地图使用两种不同的算法进行编码的瓷砖的位置。
对于谷歌地图,瓷砖的URL看起来像http://mt1.google.com/mt?n=404amp V = w2.12amp; X =130安培; Y =93安培;变焦= 9用X和y为瓷砖的坐标和缩放因子。变焦倍数从17(完全缩小)到0(最高清晰度)。 17的一个因素,整个地球是在一瓦,其中x = 0和y = 0。在16的一个因素,地球被分为2x2的部分,其中0lt; = XLT; = 1和0lt; = YLT; = 1,并在每个变焦步骤,每个tile是划分成4个部分。因此,在一个缩放因子Z,横向和纵向的瓷砖数量是2 ^(17 - Z)算法找到一个瓷砖从一个纬度,经度和变焦倍数

//correct the latitude to go from 0 (north) to 180 (south),

// instead of 90(north) to -90(south)

latitude=90-latitude;



//correct the longitude to go from 0 to 360

longitude=180+longitude;



//find tile size from zoom level

double latTileSize=180/(pow(2,(17-zoom)));

double longTileSize=360/(pow(2,(17-zoom)));



//find the tile coordinates

int tilex=(int)(longitude/longTileSize);

int tiley=(int)(latitude/latTileSize);

其实这种算法理论所涵盖的区域不匹配整个地球。服务器
谷歌使用四台服务器来平衡负载。这些都是mt0,MT1,MT2和MT3。拼贴大小
每一层是一个256x256的PNG图片。卫星图像,编码是有点不同
的URL看起来像http://kh0.google.com/kh?n=404amp; V =8安培; T = trtqtt"T"参数编码图像的位置。该参数的长度表示缩放级别。
看到整个地球,只要用"T = T"。这给出了一个单一的瓷砖,代表地球。对于未来的缩放级别,这种瓷砖划分成4个象限的,从顶部顺时针左:'Q''R''S'和'T'。要看到一个象限,只是追加该象限的图像,您正在查看的信。例如:"T = TQ"会给左上角象限的"T"的形象。所以在每个缩放级别... ...算法找到一个瓷砖从一个纬度,经度和变焦倍数{C}
同样,这个算法是相当的理论,作为覆盖的区域不匹配完整的地球。服务器
谷歌使用四台服务器来平衡负载。这些都是kh0,kh1,KH​​2和kh3。拼贴大小
每一层是一个256x256的JPG图片。墨卡托投影
由于墨卡托投影,上面的算法必须进行修改。在墨卡托投影,两个平行之间的间距不恒定。所以一瓦所描述的角度取决于它的垂直位置。
来计算瓷砖的垂直数量从纬度一段代码。
/**<summary>Get the vertical tile number from a latitude

using Mercator projection formula</summary>*/

        private int getMercatorLatitude(double lati)

        {

            double maxlat = Math.PI;



            double lat = lati;



            if (lat > 90) lat = lat - 180;

            if (lat < -90) lat = lat + 180;



            // conversion degre=>radians

            double phi = Math.PI * lat / 180;



            double res;

            //double temp = Math.Tan(Math.PI / 4 - phi / 2);

            //res = Math.Log(temp);

            res = 0.5 * Math.Log((1 + Math.Sin(phi)) / (1 - Math.Sin(phi)));

            double maxTileY = Math.Pow(2, zoom);

            int result = (int)(((1 - res / maxlat) / 2) * (maxTileY));



            return (result);

        }
涵盖区
理论上,纬度应该从-90到90,但实际上由于墨卡托投影,它发送到无穷的两极,覆盖的区域是一个比-90至90。事实上的最高纬度是一个PI(3.1415926),使上墨卡托投影,使用的公式:Y = 1 / 2((1罪(LAT))/(1 - SIN(LAT)))(见链接墨卡托段)。保护
谷歌地图使用一种保护机制,以保持良好的服务质量。如果人们太多的要求,谷歌地图将它的IP地址添加到黑名单,并发送一个不错的消息:谷歌错误
,我们深表歉意... ... ... ...但您的查询看起来类似于来自计算机病毒或间谍软件应用程序的自动请求。为了保护我们的用户,我们无法处理您的请求现在。我们将尽快恢复您的访问,所以再试一次。在此期间,如果您怀疑您的计算机或网络已被感染,您可能希望运行的病毒检查程序或间谍软件去除,以确保您的系统是无病毒和其它的寄生软件。我们对带来的不便表示歉意,并希望我们将再次看到你在Google上。
为了避免被列入黑名单,开发人员应该使用缓存机制,如果可能的话...星期六的例子
{A}整个地球。{S0}
和四个相应象限:(注4服务器的名称来平衡负载)http://kh0.google.com/kh?n=404amp; V =8安培T = TQhttp://kh1.google.com/kh?n=404amp; V =8安培T = TRhttp://kh2.google.com/kh?n=404amp; V =8安培T = TShttp://kh3.google.com/kh?n=404amp; V =8安培T = TT{S2}{S3}{S4}的地图的例子
整个地球。{五}
和相应的四个象限:http://mt0.google.com/mt?n=404amp; V =安培; X =0安培​​; Y =0安培​​;变焦= 16http://mt1.google.com/mt?n=404amp; V =安培; X =1安培; Y =0安培​​;变焦= 16http://mt2.google.com/mt?n=404amp; V =安培; X =0安培​​; Y =1安培;变焦= 16http://mt3.google.com/mt?n=404amp; V =安培; X =1安培; Y =1安培;变焦= 16{中六}{七}{S8}
尼斯,是不是?
C语言编写的示例代码,请参阅本文顶部下载。历史文章编辑:谷歌地图已经改变了地图v参数。为2.12,当我写这篇文章,但它现在的2.66。我想这是一个版本号或类似的东西... ...

回答

评论会员:netying 时间:2011/12/06
现在一些城市,谷歌可提供45度的图像,但我发现,瓷砖的URL格式是不相同的卫星图像
。做任何人知道吗?感谢
评论会员:!Aslan7470 时间:2011/12/06
!感谢您的文章
我开发地球的三维模型,并要质地与谷歌卫星图像瓷砖
但我发现,像http://kh0.google.com/kh?n=404v=8t=t这样的链接不工作,只有
像这http://mt0.google.com/vt/lyrs=m的@ 129hl = rux = 59y = 98z = 8S =工作
这给了我地图的瓷砖,而不是卫星图像砖,我想
还有一个问题:
你如何看待谷歌地球应用程序的临近地球表面极点,如果你在高分辨率的墨卡托投影绘制所有众多EGE砖,触摸极
评论会员:?borowiak 时间:2011/12/06
您好,
本周末以来,吨谷歌的服务器返回错误。 {S10}
这是正常的吗?
感谢

麦克
评论会员:mbaocha 时间:2011/12/06
?请有任何人成功地实施这些
____________________________________________________________________________________{ BR}
{S11}

和平宁静
评论会员:vincegavin 时间:2011/12/06
kh0是目前V34
运行
评论会员:教育暨青年局人akhras 时间:2011/12/06
如何可我知道V34
评论会员:?vincegavin 时间:2011/12/06
在v = 35节:

http://kh0.google.com/kh?n=404amp; V =34安培,T = TQ

从V34到V38,目前正在
评论会员:游客 时间:2011/12/06
。教育暨青年局人akhras
谢谢你回答我的问题

我想知道是否有一些方法可以帮助我知道参数"V"或没有价值。你能telp我的方法吗?请。另外你能告诉我的参数"N"的含义? ,我怎么能找到的参数"N"的价值呢?

谢谢
评论会员:vincegavin 时间:2011/12/06
我知道线索和错误的工作版本(V)文斯{S12}

personaly,我无法理解完整的symantics ... ...也许帕斯卡
评论会员:。dip2k 时间:2011/12/06
谢谢所有相同的
评论会员:游客 时间:2011/12/06
!教育暨青年局人akhras
!美好的一天〜给你,好人
上代码不工作。
也许Satellitemap服务器被改变了。
什么是当前服务器的名称和版本
评论会员:Katekortez 时间:2011/12/06

评论会员:senthilmuruganbtech 时间:2011/12/06
?..我想出瓷砖逻辑和控制,坐标是相同的谷歌地图;} {BR }
{A5}

{S13}"/>

和平宁静
评论会员:CoderCZ 时间:2011/12/06
垃圾邮件删除
评论会员:CoderCZ 时间:2011/12/06
xcvxcvxc
评论会员:hiuyil 时间:2011/12/06
为什么kh1到kh4服务器无法正常工作了吗?看来他们是脱机一些日子以来...
评论会员:罗曼Vallet 时间:2011/12/06
使用khm0 khm3(当前版本V = 30)
评论会员:CoderCZ 时间:2011/12/06
感谢
。你如何找到这些信息
评论会员:?JasonDiplomat 时间:2011/12/06
安装HttpFox在Mozilla Firefox
评论会员:。 时间:2011/12/06