对Google Maps API的JS文件解析(map.js)
我下载了Google Maps API所调用的JS文件的源文件,研究了一下,做了一点注释,现在放在下面
1
var _mSiteName = 'Google Maps';
2
var _mZoomIn = 'Zoom In';
3
var _mZoomOut = 'Zoom Out';
4
var _mZoomSet = 'Click to set zoom level';
5
var _mZoomDrag = 'Drag to zoom';
6
var _mPanWest = 'Go left';
7
var _mPanEast = 'Go right';
8
var _mPanNorth = 'Go up';
9
var _mPanSouth = 'Go down';
10
var _mLastResult = 'Return to the last result';
11
var _mGoogleCopy = '?2005 Google';
12
var _mDataCopy = 'Map data ?2005 ';
13
var _mNavteq = 'NAVTEQ?';
14
var _mTeleAtlas = 'Tele Atlas';
15
var _mZenrin = 'ZENRIN';
16
var _mZenrinCopy = 'Map ?2005 ';
17
var _mNormalMap = 'Map';
18
var _mNormalMapShort = 'Map';
19
var _mHybridMap = 'Hybrid';
20
var _mHybridMapShort = 'Hyb';
21
var _mNew = 'New!';
22
var _mTerms = 'Terms of Use';
23
var _mKeyholeMap = 'Satellite';
24
var _mKeyholeMapShort = 'Sat';
25
var _mKeyholeCopy = 'Imagery ?2005 ';
26
var _mScale = 'Scale at the center of the map';
27
var _mKilometers = 'km';
28
var _mMiles = 'mi';
29
var _mMeters = 'm';
30
var _mFeet = 'ft';
31
var _mDecimalPoint = '.';
32
var _mThousandsSeparator = ',';
33
var _mMapErrorTile = 'We are sorry, but we don\'t have maps at this zoom level for this region.Try zooming out for a broader look.';
34
var _mKeyholeErrorTile = 'We are sorry, but we don\'t have imagery at this zoom level for this region.Try zooming out for a broader look.';
35
var _mTermsURL = 'http://www.google.com/help/terms_local.html';
36
var _apiHash = '5f87579ff86792cf982d095a4228e3de6cdaf562';
37
var _apiKey = 'ABQIAAAA7nPTPXCvzWYxyKdmbFQfTxRfh1ef-GeSz5gtCVpCKOPebNr1YhR23M_jRfeqAugNMsW3pZQJAwfCFw';
38
var _mApiBadKey = 'The Google Maps API key used on this web site was registered for a different web site. You can generate a new key for this web site at http://www.google.com/apis/maps/.';
39
function createMapSpecs()
40
{
41
var mt = '';
42
var tv = 'w2.5';
43
var apitv = 'w2.5';
44
var hmt = '';
45
var htv = 'w2t.1';
46
var apihtv = 'w2t.1';
47
var kmt = '';
48
var kdomain = 'google.com';
49
var ktv = '3';
50
var kdisable = false;
51
var khauth = 'fzwq2uohc9nRek9eHfZgC_oFXnYU9GSk3iYwgw';
52
var kjapandatumhack = true;
53
var hybrid = (htv != '');
54
if (!arguments.callee.mapSpecs)
55
{
56
var mapSpecs = [];
57
var tileVersion = window._apiKey ? apitv : tv;
58
var hTileVersion = window._apiKey ? apihtv : htv;
59
var mapCopy = (tileVersion != tv) ? G_MAP_API_COPYRIGHTS :G_MAP_DEFAULT_COPYRIGHTS;
60
var hybridCopy = (hTileVersion != htv) ? G_MAP_API_COPYRIGHTS :G_MAP_DEFAULT_COPYRIGHTS;
61
_GOOGLE_MAP_TYPE = new _GoogleMapMercSpec(mt, tileVersion, mapCopy);
62
mapSpecs.push(_GOOGLE_MAP_TYPE);
63
if (!kdisable)
64
{
65
_SATELLITE_TYPE = new _KeyholeMapMercSpec(kmt, kdomain, ktv, khauth,kjapandatumhack);
66
mapSpecs.push(_SATELLITE_TYPE);
67
if (hybrid)
68
{
69
_HYBRID_TYPE = new _HybridMapSpec(kmt, kdomain, ktv, khauth,kjapandatumhack, hmt, hTileVersion,hybridCopy);
70
mapSpecs.push(_HYBRID_TYPE);
71
}
72
_KATRINA_TYPE = new _KatrinaMapSpec(kmt, kdomain, ktv, khauth);
73
mapSpecs.push(_KATRINA_TYPE);
74
}
75
arguments.callee.mapSpecs = mapSpecs;
76
}
77
return arguments.callee.mapSpecs;
78
}
79
//取得浏览器名称字符串
80
var _u = navigator.userAgent.toLowerCase();
81
//检查是否存在t子字符串
82
function _ua(t)
83
{
84
return _u.indexOf(t) != -1;
85
}
86
//用t作前缀解析_u,取得_u后面的城市
87
function _uan(t)
88
{
89
if(!window.RegExp)
90
{
91
return 0;
92
}
93
var r = new RegExp(t+'([0-9]*)');
94
var s = r.exec(_u);
95
var ret = 0;
96
if (s.length >= 2)
97
{
98
ret = s[1];
99
}
100
return ret;
101
}
102
//是否支持ActiveX(使用Microsoft.XMLDOM)
103
function _noActiveX()
104
{
105
if(!_ua('msie') || !document.all || _ua('opera'))
106
{
107
return false;
108
}
109
var s = false;
110
eval('try { new ActiveXObject("Microsoft.XMLDOM"); }'+'catch (e) { s = true; }');
111
return s;
112
}
113
//检查浏览器名称是否正常
114
function _compat()
115
{
116
return ((_ua('opera') &&(_ua('opera 7.5') || _ua('opera/7.5') ||_ua('opera 8') || _ua('opera/8'))) ||(_ua('safari') && _uan('safari/') >= 125) ||(_ua('msie') &&!_ua('msie 4') && !_ua('msie 5.0') && !_ua('msie 5.1') &&!_ua('msie 3') && !_ua('powerpc')) ||(document.getElementById && window.XSLTProcessor &&window.XMLHttpRequest && !_ua('netscape6') &&!_ua('netscape/7.0')));
117
}
118
//这里也比较让人费解,_compat和_browserIsCompatible、GBrowserIsCompatible其实都差不多啊
119
_fc = false;
120
_c = _fc || _compat();
121
//返回浏览器兼容性,不知道为什么会有两个一样的函数
122
function _browserIsCompatible()
123
{
124
return _c;
125
}
126
function GBrowserIsCompatible()
127
{
128
return _c;
129
}
130
//判断浏览器是否存在xslt解析
131
function _havexslt()
132
{
133
if (typeof GetObject != 'undefined' ||(typeof XMLHttpRequest != 'undefined' &&typeof DOMParser != 'undefined' &&typeof XSLTProcessor != 'undefined'))
134
{
135
return true;
136
}
137
else
138
{
139
return false;
140
}
141
}
142
//载入一个JS文件
143
function _script(src)
144
{
145
var ret='<'+'script src="'+src+'"'+' type="text/javascript"><'+'/script>';
146
document.write(ret);
147
}
148
//根据浏览器兼容性情况加载不同的JS文件
149
function _loadMapsScript()
150
{
151
if(_havexslt())
152
{
153
_script("http://maps.google.com/mapfiles/maps.21.js");
154
}
155
else if(_ua('safari'))
156
{
157
_script("http://maps.google.com/mapfiles/maps.21.safari.js");
158
}
159
else
160
{
161
_script("http://maps.google.com/mapfiles/maps.21.xslt.js");
162
}
163
}
164
//如果浏览器兼容并支持ActiveX,则加载JS文件
165
if (_c && !_noActiveX())
166
{
167
document.write('');
168
document.write('');
169
_loadMapsScript();
170
}
171![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
79
![](/Images/OutliningIndicators/None.gif)
80
![](/Images/OutliningIndicators/None.gif)
81
![](/Images/OutliningIndicators/None.gif)
82
![](/Images/OutliningIndicators/None.gif)
83
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
86
![](/Images/OutliningIndicators/None.gif)
87
![](/Images/OutliningIndicators/None.gif)
88
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
102
![](/Images/OutliningIndicators/None.gif)
103
![](/Images/OutliningIndicators/None.gif)
104
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
113
![](/Images/OutliningIndicators/None.gif)
114
![](/Images/OutliningIndicators/None.gif)
115
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
118
![](/Images/OutliningIndicators/None.gif)
119
![](/Images/OutliningIndicators/None.gif)
120
![](/Images/OutliningIndicators/None.gif)
121
![](/Images/OutliningIndicators/None.gif)
122
![](/Images/OutliningIndicators/None.gif)
123
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
130
![](/Images/OutliningIndicators/None.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
141
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
142
![](/Images/OutliningIndicators/None.gif)
143
![](/Images/OutliningIndicators/None.gif)
144
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
148
![](/Images/OutliningIndicators/None.gif)
149
![](/Images/OutliningIndicators/None.gif)
150
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
163
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
171
![](/Images/OutliningIndicators/None.gif)
posted on 2005-09-30 17:45 K_Reverter 阅读(3009) 评论(0) 编辑 收藏 举报