1、源文件TrafficControl.js修改:
2、后台方法:
//使百度地图交通状况支持https
[HttpGet]
public void GetTrafficContol()
{
HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)HttpWebRequest.Create("http://its.map.baidu.com:8002/traffic/GetCurrentTime?callback=BMapLib.TrafficControl.getTime&");
httpWebRequest.Method = "GET";
var stream = new System.IO.StreamReader(httpWebRequest.GetResponse().GetResponseStream());
Response.ContentType = "application/x-javascript";
Response.Write("eval('"+stream.ReadToEnd()+"')");
Response.End();
}
3、TrafficControl.js修改后源码:
/**
* @fileoverview 百度地图的交通流量控件,对外开放。
* 控制当前,未来交通流量图层在地图上的显示,隐藏 等。
* 主入口类是<a href="symbols/BMapLib.TrafficControl.html">TrafficControl</a>,
* 基于Baidu Map API 1.4。
*
* @author Baidu Map Api Group
* @version 1.4
*/
/**
* @namespace BMap的所有library类均放在BMapLib命名空间下
*/
var BMapLib = window.BMapLib = BMapLib || {};
(function () {
//声明baidu包
var T, baidu = T = baidu || {
version: "1.3.9"
};
//提出guid,防止在与老版本Tangram混用时
//在下一行错误的修改window[undefined]
baidu.guid = "$BAIDU$";
//闭包,里边是所用到的tangram的方法
(function () {
/** @ignore
* @namespace baidu.dom 操作dom的方法。
*/
baidu.dom = baidu.dom || {};
/* @ignore
* @namespace baidu.event 屏蔽浏览器差异性的事件封装。
* @property target 事件的触发元素
* @property pageX 鼠标事件的鼠标x坐标
* @property pageY 鼠标事件的鼠标y坐标
* @property keyCode 键盘事件的键值
*/
baidu.event = baidu.event || {};
/* @ignore
* @namespace baidu.lang 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。
*/
baidu.lang = baidu.lang || {};
/* @ignore
* @namespace baidu.browser 判断浏览器类型和特性的属性。
*/
baidu.browser = baidu.browser || {};
/**
* 为目标元素添加className
* @name baidu.dom.addClass
* @function
* @grammar baidu.dom.addClass(element, className)
* @param {HTMLElement|string} element 目标元素或目标元素的id
* @param {string} className 要添加的className,允许同时添加多个class,中间使用空白符分隔
* @remark
* 使用者应保证提供的className合法性,不应包含不合法字符,className合法字符参考:http://www.w3.org/TR/CSS2/syndata.html。
* @shortcut addClass
* @meta standard
* @see baidu.dom.removeClass
*
*
* @returns {HTMLElement} 目标元素
*/
baidu.dom.addClass = function (element, className) {
element = baidu.dom.g(element);
var classArray = className.split(/\s+/),
result = element.className,
classMatch = " " + result + " ",
i = 0,
l = classArray.length;
for (; i < l; i++) {
if (classMatch.indexOf(" " + classArray[i] + " ") < 0) {
result += (result ? ' ' : '') + classArray[i];
}
}
element.className = result;
return element;
};
// 声明快捷方法
baidu.addClass = baidu.dom.addClass;
/**
* 移除目标元素的className
* @name baidu.dom.removeClass
* @function
* @grammar baidu.dom.removeClass(element, className)
* @param {HTMLElement|string} element 目标元素或目标元素的id
* @param {string} className 要移除的className,允许同时移除多个class,中间使用空白符分隔
* @remark
* 使用者应保证提供的className合法性,不应包含不合法字符,className合法字符参考:http://www.w3.org/TR/CSS2/syndata.html。
* @shortcut removeClass
* @meta standard
* @see baidu.dom.addClass
*
* @returns {HTMLElement} 目标元素
*/
baidu.dom.removeClass = function (element, className) {
element = baidu.dom.g(element);
var oldClasses = element.className.split(/\s+/),
newClasses = className.split(/\s+/),
lenOld, lenDel = newClasses.length,
j, i = 0;
//考虑到同时删除多个className的应用场景概率较低,故放弃进一步性能优化
// by rocy @1.3.4
for (; i < lenDel; ++i) {
for (j = 0, lenOld = oldClasses.length; j < lenOld; ++j) {
if (oldClasses[j] == newClasses[i]) {
oldClasses.splice(j, 1);
break;
}
}
}
element.className = oldClasses.join(' ');
return element;
};
// 声明快捷方法
baidu.removeClass = baidu.dom.removeClass;
/**
* 获取目标元素的computed style值。如果元素的样式值不能被浏览器计算,则会返回空字符串(IE)
*
* @author berg
* @name baidu.dom.getComputedStyle
* @function
* @grammar baidu.dom.getComputedStyle(element, key)
* @param {HTMLElement|string} element 目标元素或目标元素的id
* @param {string} key 要获取的样式名
*
* @see baidu.dom.getStyle
*
* @returns {string} 目标元素的computed style值
*/
baidu.dom.getComputedStyle = function (element, key) {
element = baidu.dom._g(element);
var doc = baidu.dom.getDocument(element),
styles;
if (doc.defaultView && doc.defaultView.getComputedStyle) {
styles = doc.defaultView.getComputedStyle(element, null);
if (styles) {
return styles[key] || styles.getPropertyValue(key);
}
}
return '';
};
/**
* 获取目标元素的样式值
* @name baidu.dom.getStyle
* @function
* @grammar baidu.dom.getStyle(element, key)
* @param {HTMLElement|string} element 目标元素或目标元素的id
* @param {string} key 要获取的样式名
* @remark
*
* 为了精简代码,本模块默认不对任何浏览器返回值进行归一化处理(如使用getStyle时,不同浏览器下可能返回rgb颜色或hex颜色),也不会修复浏览器的bug和差异性(如设置IE的float属性叫styleFloat,firefox则是cssFloat)。<br />
* baidu.dom._styleFixer和baidu.dom._styleFilter可以为本模块提供支持。<br />
* 其中_styleFilter能对颜色和px进行归一化处理,_styleFixer能对display,float,opacity,textOverflow的浏览器兼容性bug进行处理。
* @shortcut getStyle
* @meta standard
* @see baidu.dom.setStyle,baidu.dom.setStyles, baidu.dom.getComputedStyle
*
* @returns {string} 目标元素的样式值
*/
baidu.dom.getStyle = function (element, key) {
var dom = baidu.dom;
element = dom.g(element);
var value = element.style[key] || (element.currentStyle ? element.currentStyle[key] : "") || dom.getComputedStyle(element, key);
return value;
};
// 声明快捷方法
baidu.getStyle = baidu.dom.getStyle;
/**
* 获取目标元素所属的document对象
* @name baidu.dom.getDocument
* @function
* @grammar baidu.dom.getDocument(element)
* @param {HTMLElement|string} element 目标元素或目标元素的id
* @meta standard
* @see baidu.dom.getWindow
*
* @returns {HTMLDocument} 目标元素所属的document对象
*/
baidu.dom.getDocument = function (element) {
element = baidu.dom.g(element);
return element.nodeType == 9 ? element : element.ownerDocument || element.document;
};
/**
* 从文档中获取指定的DOM元素
* @name baidu.dom.g
* @function
* @grammar baidu.dom.g(id)
* @param {string|HTMLElement} id 元素的id或DOM元素
* @shortcut g,T.G
* @meta standard
* @see baidu.dom.q
*
* @returns {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数
*/
baidu.dom.g = function (id) {
if ('string' == typeof id || id instanceof String) {
return document.getElementById(id);
} else if (id && id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) {