惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
GbyAI
GbyAI
M
MIT News - Artificial intelligence
美团技术团队
罗磊的独立博客
雷峰网
雷峰网
量子位
博客园 - 【当耐特】
Last Week in AI
Last Week in AI
D
Docker
小众软件
小众软件
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
WordPress大学
WordPress大学
V
V2EX
博客园_首页
腾讯CDC
The Cloudflare Blog
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - Calendar

windows平台下用C#访问HBase Hbase常用命令 CuteEditor测试 Windows 7使用问题 小问题之动态调用另一个程序集里的方法 GM的Hybrid MapPoint批量导入Pushpin的方法 - Calendar - 博客园 通过两个点的经纬度计算距离 地震了 下载试用IE 7.0 Beta 3.0 google maps可以支持地理信息查询了(附上功能介绍) - Calendar - 博客园 prototype理解 - Calendar - 博客园 google maps的脚本值得看看 - Calendar - 博客园 linux下运行的eclipse的说明 用socket连接pop3服务器遇到的小问题 google maps又更新了 我是如何取得Reflector的真实程序的 对J2ME的想法 MiniQQ与LumaQQ
google卫星地图的url计算
Calendar · 2006-04-27 · via 博客园 - Calendar

通过url跟踪,可以方便地取得google maps普通地图的图片url,如:
GET /mt?n=404&v=w2.10&x=3&y=6&zoom=13 HTTP/1.1
而对卫星地图图片的url像:
GET /kh?n=404&v=5&t=tqtsq HTTP/1.1
就不知它的t参数含义了。
今天看了看地图的.js文件,找到了如下代码,可以计算这个参数,也就可以动态构造出相应的url去批量下载卫星地图了。
代码如下:

<script>

function MapObj()
{
    
this.x;
    
this.y;
}


function test()
{
    
var o = new MapObj();
    
var ss = document.all("txtPos").value.split(",");
    o.x 
= ss[0];
    o.y 
= ss[1];
    
var zoom = parseInt(document.all("txtFactor").value);
    
var ret = cal(o, 17 - zoom);
    document.all(
"txtMess").value = ret;
}

function cal(a,b)
{
    
var c=Math.pow(2,b);//比例参数, 地图宽度图片数量
    var d=a.x;//a is the map object
    var e=a.y;
    
var f="t";
    
/*
    zoom = 13; b = 4; c = 2^4 = 16;
    
*/

    
for(var g=0;g<b;g++)//
    {
        c
=c/2;        // c / 2
        if(e<c)        //a.y < c
        {
            
if(d<c)//a.x < c
            {
                f
+="q"
            }

            
else//a.x >= c
            {
                f
+="r";
                d
-=//a.x = a.x - c
            }

        }

        
else//a.y >= c
        {
            
if(d<c)//a.x < c
            {
                f
+="t";
                e
-=//a.y = a.y - c
            }

            
else//a.x >= c
            {
                f
+="s";
                d
-=c;  //a.x = a.x - c
                e-=c   //a.y = a.y - c
            }

        }

    }

    
return "t=" + f;
    
//var h=(a.x+a.y)%this.wa.length;//
    //return this.wa[h]+"t="+f
}

</script>
(x,y)
<input type=text id="txtPos" value="3,7"><br>
zoom:
<input type=text id="txtFactor" value="13">
<input type=button value="check" onclick="test()">

<br>
   
<input type=text id="txtMess">