[原创]经过整理的源代码 google map 代码分析之一

这篇博客详细分析了一段Google Map的源代码,包括地图类型定义、浏览器兼容性检查、地图加载函数以及搜索和导航功能的实现。通过源代码,读者可以深入了解Google Map的工作原理和交互机制。
摘要由CSDN通过智能技术生成

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
    <noscript>
        <meta http-equiv="refresh" content="0; URL=http://maps.google.com/?output=html" />
    </noscript>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <script type="text/javascript"><!--
//<![CDATA[
var _mSiteName = 'Google Local';
var _mZoomIn = 'Zoom In';
var _mZoomOut = 'Zoom Out';
var _mZoomSet = 'Click to set zoom level';
var _mZoomDrag = 'Drag to zoom';
var _mPanWest = 'Go left';
var _mPanEast = 'Go right';
var _mPanNorth = 'Go up';
var _mPanSouth = 'Go down';
var _mLastResult = 'Return to the last result';
var _mGoogleCopy = '&#169;2005 Google';
var _mDataCopy = 'Map data &#169;2005 ';
var _mNavteq = 'NAVTEQ&#8482;';
var _mTeleAtlas = 'Tele Atlas';
var _mZenrin = 'ZENRIN';
var _mZenrinCopy = 'Map &#169;2005 ';
var _mNormalMap = 'Map';
var _mNormalMapShort = 'Map';
var _mHybridMap = 'Hybrid';
var _mHybridMapShort = 'Hyb';
var _mNew = 'New!';
var _mTerms = 'Terms of Use';
var _mKeyholeMap = 'Satellite';
var _mKeyholeMapShort = 'Sat';
var _mKeyholeCopy = 'Imagery &#169;2005 ';
var _mScale = 'Scale at the center of the map';
var _mKilometers = 'km';
var _mMiles = 'mi';
var _mMeters = 'm';
var _mFeet = 'ft';
var _mDecimalPoint = '.';
var _mThousandsSeparator = ',';
var _mMapErrorTile = 'We are sorry, but we don/'t have maps at this zoom level for this region.<p>Try zooming out for a broader look.</p>';
var _mKeyholeErrorTile = 'We are sorry, but we don/'t have imagery at this zoom level for this region.<p>Try zooming out for a broader look.</p>';
var _mTermsURL = 'http://www.google.com/intl/en_ALL/help/terms_local.html';
var _mStaticPath = 'http://www.google.com/intl/en_ALL/mapfiles/';
var _mDomain = 'google.com';
var _mAutocompleteFrom = '';
var _mAutocompleteTo = '';
var _mAutocompleteNearRe = '';
var _mAutocompleteRecentText = '';
function createMapSpecs()
{
var mt = '';
var mtd = '4';
var tv = 'w2.7';
var lrtv = 't2.2';
var apitv = 'ap.3';
var lrapitv = 'tap.2';
var hmt = '';
var hmtd = '4';
var htv = 'w2t.1';
var lrhtv = 't2t.2';
var apihtv = 'apt.1';
var lrapihtv = 'tapt.2';
var kmt = '';
var kmtd = '4';
var kdomain = 'google.com';
var ktv = '3';
var kdisable = false;
var khauth = 'fzwq1IYtIHYv43dMOM4ZDACx0-4vZndBylgelQ';
var kjapandatumhack = false;
var hybrid = (htv != '');
if (!arguments.callee.mapSpecs)
{
var mapSpecs = [];
var tileVersion = window._apiKey ? apitv : tv;
var lrTileVersion = window._apiKey ? lrapitv : lrtv;
var hTileVersion = window._apiKey ? apihtv : htv;
var lrHTileVersion = window._apiKey ? lrapihtv : lrhtv;
var mapCopy = (tileVersion != tv) ? G_MAP_API_COPYRIGHTS :G_MAP_DEFAULT_COPYRIGHTS;
var hybridCopy = (hTileVersion != htv) ? G_MAP_API_COPYRIGHTS :G_MAP_DEFAULT_COPYRIGHTS;
_GOOGLE_MAP_TYPE = new _GoogleMapMercSpec(mt, mtd, tileVersion, mapCopy,lrTileVersion);mapSpecs.push(_GOOGLE_MAP_TYPE);
if (!kdisable)
{
_SATELLITE_TYPE = new _KeyholeMapMercSpec(kmt, kmtd, kdomain, ktv,khauth, kjapandatumhack);
mapSpecs.push(_SATELLITE_TYPE);
if (hybrid)
{
_HYBRID_TYPE = new _HybridMapSpec(kmt, kmtd, kdomain, ktv, khauth,kjapandatumhack, hmt, hmtd,hTileVersion, hybridCopy,lrHTileVersion);
mapSpecs.push(_HYBRID_TYPE);
}
_KATRINA_TYPE = new _KatrinaMapSpec(kmt, kmtd, kdomain, ktv, khauth);mapSpecs.push(_KATRINA_TYPE);
}
arguments.callee.mapSpecs = mapSpecs;
}
return arguments.callee.mapSpecs;
}

var _u = navigator.userAgent.toLowerCase();
function _ua(t) {
return _u.indexOf(t) != -1;
}
function _uan(t)
{
if(!window.RegExp)
{
return 0;
}
var r = new RegExp(t+'([0-9]*)');
var s = r.exec(_u);
var ret = 0;
if (s.length >= 2)
{
ret = s[1];
}
return ret;
}
function _noActiveX()
{
if(!_ua('msie') || !document.all || _ua('opera'))
{
return false;
}
var s = false;
eval('try { new ActiveXObject("Microsoft.XMLDOM"); }'+'catch (e) { s = true; }');
return s;
}
function _compat(){
return ((_ua('opera') &&(_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('msie 5.5') && !_ua('powerpc')) ||(document.getElementById && window.XSLTProcessor &&window.XMLHttpRequest && !_ua('netscape6') &&!_ua('netscape/7.0')));
}
_fc = false;
_c = _fc || _compat();

function _browserIsCompatible()
{
return _c;
}

/*b  y   旷  野  无  霜  */

function GBrowserIsCompatible()
{
return _c;
}

function _havexslt()
{
if (typeof GetObject != 'undefined' ||(typeof XMLHttpRequest != 'undefined' &&typeof DOMParser != 'undefined' &&typeof XSLTProcessor != 'undefined'))
{
return true;
} else
{
return false;
}
}

function _script(src)
{
var ret='<'+'script src="'+src+'"'+' type="text/javascript"><'+'/script>';document.write(ret);
}
function GLoadMapsScript()
{
if (_havexslt()){_script("http://maps.google.com/mapfiles/maps.28.js");
}
else if (_ua('safari'))
{
_script("http://maps.google.com/mapfiles/maps.28.safari.js");
}
else
{
_script("http://maps.google.com/mapfiles/maps.28.xslt.js");
}
}
function _el(i)
{
return document.getElementById(i);
}
function _esc(v) {
return ('' + v).replace(new RegExp('<', 'g'),' ');
}
var _nxsl = !_ua('safari');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值