-
Notifications
You must be signed in to change notification settings - Fork 284
/
Google.ts
executable file
·100 lines (74 loc) · 2.3 KB
/
Google.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import TiledLayer = require('./TiledLayer');
import LabelLayer from './LabelLayer';
//http://www.google.cn/maps
//http://ditu.bigemap.com/
//http://map.earthol.com/
//http://www.265.me/
type Style = "Default" | "Satellite" | "Road" | "RoadOnly" | "Terrain" | "TerrainOnly";
export class GoogleTiledLayer extends TiledLayer{
private idx:number = 0;
constructor(style: Style = "Default"){
super(style);
}
getTileUrl(level: number, row: number, column: number) {
if(this.idx === undefined){
this.idx = 0;
}
/*
h = roads only
m = standard roadmap
p = terrain
r = somehow altered roadmap
s = satellite only
t = terrain only
y = hybrid
*/
// if(this.style === "Satellite"){
// //http://mt0.google.cn/maps/vt?lyrs=s%40709&hl=zh-CN&gl=CN&&x=0&y=4&z=4
// url = `//mt${this.idx}.google.cn/maps/vt?lyrs=s%40709&hl=zh-CN&gl=CN&&x=${column}&y=${row}&z=${level}`;
// }else{
// // return `//mt${idx}.google.cn/vt/lyrs=m@212000000&hl=zh-CN&gl=CN&src=app&x=${column}&y=${row}&z=${level}&s=Galil`;
// url = `//mt${this.idx}.google.cn/vt/hl=zh-CN&gl=CN&x=${column}&y=${row}&z=${level}`;
// }
var lyrs: string = "y";
switch(this.style){
case "Satellite":
lyrs = "s";
break;
case "Road":
lyrs = "m";
break;
case "RoadOnly":
lyrs = "h";
break;
case "Terrain":
lyrs = "p";
break;
case "TerrainOnly":
lyrs = "t";
break;
}
var url:string = `//mt${this.idx}.google.cn/maps/vt?lyrs=${lyrs}&hl=zh-CN&gl=CN&&x=${column}&y=${row}&z=${level}`;
this.idx++;
if(this.idx >= 4){
this.idx = 0;
}
return url;
}
};
//http://ditu.bigemap.com/
export class GoogleLabelLayer extends LabelLayer {
private idx: number = 0;
getTileUrl(level: number, row: number, column: number): string {
if (this.idx === undefined) {
this.idx = 0;
}
//http://mt3.google.cn/vt/imgtp=png32&lyrs=h@365000000&hl=zh-CN&gl=cn&x=3376&y=1553&z=12&s=Galil
var url = `//mt${this.idx}.google.cn/vt/imgtp=png32&lyrs=h@365000000&hl=zh-CN&gl=cn&x=${column}&y=${row}&z=${level}&s=Galil`;
this.idx++;
if (this.idx >= 4) {
this.idx = 0;
}
return url;
}
};