803 lines
56 KiB
JavaScript
803 lines
56 KiB
JavaScript
|
|
(function(window){
|
|||
|
|
window.AMapUI_DEBUG = false;
|
|||
|
|
!function(global) {
|
|||
|
|
if (!global.AMap) throw new Error("请前置引入高德地图 JSAPI ,参见https://lbs.amap.com/api/jsapi-v2/guide/amap-ui/intro");
|
|||
|
|
}(window);
|
|||
|
|
var AMapUI;!function(){if(!AMapUI||!AMapUI.requirejs){AMapUI?require=AMapUI:AMapUI={};var requirejs,require,define;!function(global,setTimeout){function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var r;for(r=0;r<e.length&&(!e[r]||!t(e[r],r,e));r+=1);}}function eachReverse(e,t){if(e){var r;for(r=e.length-1;r>-1&&(!e[r]||!t(e[r],r,e));r-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var r;for(r in e)if(hasProp(e,r)&&t(e[r],r))break}function mixin(e,t,r,n){return t&&eachProp(t,function(t,i){!r&&hasProp(e,i)||(!n||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[i]=t:(e[i]||(e[i]={}),mixin(e[i],t,r,n)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,r,n){var i=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return i.requireType=e,i.requireModules=n,r&&(i.originalError=r),i}function newContext(e){function t(e){var t,r;for(t=0;t<e.length;t++)if(r=e[t],"."===r)e.splice(t,1),t-=1;else if(".."===r){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;t>0&&(e.splice(t-1,2),t-=2)}}function r(e,r,n){var i,o,a,s,u,c,f,p,d,l,h,m,g=r&&r.split("/"),v=w.map,x=v&&v["*"];if(e&&(e=e.split("/"),f=e.length-1,w.nodeIdCompat&&jsSuffixRegExp.test(e[f])&&(e[f]=e[f].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(m=g.slice(0,g.length-1),e=m.concat(e)),t(e),e=e.join("/")),n&&v&&(g||x)){a=e.split("/");e:for(s=a.length;s>0;s-=1){if(c=a.slice(0,s).join("/"),g)for(u=g.length;u>0;u-=1)if(o=getOwn(v,g.slice(0,u).join("/")),o&&(o=getOwn(o,c))){p=o,d=s;break e}!l&&x&&getOwn(x,c)&&(l=getOwn(x,c),h=s)}!p&&l&&(p=l,d=h),p&&(a.splice(0,d,p),e=a.join("/"))}return i=getOwn(w.pkgs,e),i?i:e}function n(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===q.contextName)return t.parentNode.removeChild(t),!0})}function i(e){var t=getOwn(w.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),q.require.undef(e),q.makeRequire(null,{skipMap:!0})([e]),!0}function o(e){var t,r=e?e.indexOf("!"):-1;return r>-1&&(t=e.substring(0,r),e=e.substring(r+1,e.length)),[t,e]}function a(e,t,n,i){var a,s,u,c,f=null,p=t?t.name:null,d=e,l=!0,h="";return e||(l=!1,e="_@r"+(C+=1)),c=o(e),f=c[0],e=c[1],f&&(f=r(f,p,i),s=getOwn(k,f)),e&&(f?h=s&&s.normalize?s.normalize(e,function(e){return r(e,p,i)}):e.indexOf("!")===-1?r(e,p,i):e:(h=r(e,p,i),c=o(h),f=c[0],h=c[1],n=!0,a=q.nameToUrl(h))),u=!f||s||n?"":"_unnormalized"+(T+=1),{prefix:f,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:d,isDefine:l,id:(f?f+"!"+h:h)+u}}function s(e){var t=e.id,r=getOwn(M,t);return r||(r=M[t]=new q.Module(e)),r}function u(e,t,r){var n=e.id,i=getOwn(M,n);!hasProp(k,n)||i&&!i.defineEmitComplete?(i=s(e),i.error&&"error"===t?r(i.error):i.on(t,r)):"defined"===t&&r(k[n])}function c(e,t){var r=e.requireModules,n=!1;t?t(e):(each(r,function(t){var r=getOwn(M,t);r&&(r.error=e,r.events.error&&(n=!0,r.emit("error",e)))}),n||req.onError(e))}function f(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(q.defQueueMap[t]=!0),O.push(e)}),globalDefQueue=[])}function p(e){delete M[e],delete S[e]}function d(e,t,r){var n=e.map.id;e.error?e.emit("error",e.error):(t[n]=!0,each(e.depMaps,function(n,i){var o=n.id,a=getOwn(M,o);!a||e.depMatched[i]||r[o]||(getOwn(t,o)?(e.defineDep(i,k[o]),e.check()):d(a,t,r))}),r[n]=!0)}function l(){var e,t,r=1e3*w.waitSeconds,o=r&&q.startTime+r<(new Date).getTime(),a=[],s=[],u=!1,f=!0;if(!x){if(x=!0,eachProp(S,function(e){var r=e.map,c=r.id;if(e.enabled&&(r.isDefine||s.push(e),!e.error))if(!e.inited&&o)i(c)?(t=!0,u=!0):(a.push(c),n(c));else if(!e.inited&&e.fetched&&r.isDefine&&(u=!0,!r.prefix))return
|
|||
|
|
AMapUI.define("lib/utils", [], function() {
|
|||
|
|
function setLogger(logger) {
|
|||
|
|
logger.debug || (logger.debug = logger.info);
|
|||
|
|
utils.logger = utils.log = logger;
|
|||
|
|
}
|
|||
|
|
var utils, defaultLogger = console, emptyfunc = function() {}, slientLogger = {
|
|||
|
|
log: emptyfunc,
|
|||
|
|
error: emptyfunc,
|
|||
|
|
warn: emptyfunc,
|
|||
|
|
info: emptyfunc,
|
|||
|
|
debug: emptyfunc,
|
|||
|
|
trace: emptyfunc
|
|||
|
|
};
|
|||
|
|
utils = {
|
|||
|
|
slientLogger: slientLogger,
|
|||
|
|
setLogger: setLogger,
|
|||
|
|
mergeArray: function(target, source) {
|
|||
|
|
if (source.length < 5e4) target.push.apply(target, source); else for (var i = 0, len = source.length; i < len; i += 1) target.push(source[i]);
|
|||
|
|
},
|
|||
|
|
setDebugMode: function(on) {
|
|||
|
|
setLogger(on ? defaultLogger : slientLogger);
|
|||
|
|
},
|
|||
|
|
now: Date.now || function() {
|
|||
|
|
return new Date().getTime();
|
|||
|
|
},
|
|||
|
|
bind: function(fn, thisArg) {
|
|||
|
|
return fn.bind ? fn.bind(thisArg) : function() {
|
|||
|
|
return fn.apply(thisArg, arguments);
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
domReady: function(callback) {
|
|||
|
|
/complete|loaded|interactive/.test(document.readyState) ? callback() : document.addEventListener("DOMContentLoaded", function() {
|
|||
|
|
callback();
|
|||
|
|
}, !1);
|
|||
|
|
},
|
|||
|
|
forEach: function(array, callback, thisArg) {
|
|||
|
|
if (array.forEach) return array.forEach(callback, thisArg);
|
|||
|
|
for (var i = 0, len = array.length; i < len; i++) callback.call(thisArg, array[i], i);
|
|||
|
|
},
|
|||
|
|
keys: function(obj) {
|
|||
|
|
if (Object.keys) return Object.keys(obj);
|
|||
|
|
var keys = [];
|
|||
|
|
for (var k in obj) obj.hasOwnProperty(k) && keys.push(k);
|
|||
|
|
return keys;
|
|||
|
|
},
|
|||
|
|
map: function(array, callback, thisArg) {
|
|||
|
|
if (array.map) return array.map(callback, thisArg);
|
|||
|
|
for (var newArr = [], i = 0, len = array.length; i < len; i++) newArr[i] = callback.call(thisArg, array[i], i);
|
|||
|
|
return newArr;
|
|||
|
|
},
|
|||
|
|
merge: function(array1, array2) {
|
|||
|
|
if (array2.length < 5e4) Array.prototype.push.apply(array1, array2); else for (var ii = 0, iilen = array2.length; ii < iilen; ii += 1) array1.push(array2[ii]);
|
|||
|
|
},
|
|||
|
|
arrayIndexOf: function(array, searchElement, fromIndex) {
|
|||
|
|
if (array.indexOf) return array.indexOf(searchElement, fromIndex);
|
|||
|
|
var k, o = array, len = o.length >>> 0;
|
|||
|
|
if (0 === len) return -1;
|
|||
|
|
var n = 0 | fromIndex;
|
|||
|
|
if (n >= len) return -1;
|
|||
|
|
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
|||
|
|
for (;k < len; ) {
|
|||
|
|
if (k in o && o[k] === searchElement) return k;
|
|||
|
|
k++;
|
|||
|
|
}
|
|||
|
|
return -1;
|
|||
|
|
},
|
|||
|
|
extend: function(dst) {
|
|||
|
|
dst || (dst = {});
|
|||
|
|
return utils.extendObjs(dst, Array.prototype.slice.call(arguments, 1));
|
|||
|
|
},
|
|||
|
|
nestExtendObjs: function(dst, objs) {
|
|||
|
|
dst || (dst = {});
|
|||
|
|
for (var i = 0, len = objs.length; i < len; i++) {
|
|||
|
|
var source = objs[i];
|
|||
|
|
if (source) for (var prop in source) source.hasOwnProperty(prop) && (utils.isObject(dst[prop]) && utils.isObject(source[prop]) ? dst[prop] = utils.nestExtendObjs({}, [ dst[prop], source[prop] ]) : dst[prop] = source[prop]);
|
|||
|
|
}
|
|||
|
|
return dst;
|
|||
|
|
},
|
|||
|
|
extendObjs: function(dst, objs) {
|
|||
|
|
dst || (dst = {});
|
|||
|
|
for (var i = 0, len = objs.length; i < len; i++) {
|
|||
|
|
var source = objs[i];
|
|||
|
|
if (source) for (var prop in source) source.hasOwnProperty(prop) && (dst[prop] = source[prop]);
|
|||
|
|
}
|
|||
|
|
return dst;
|
|||
|
|
},
|
|||
|
|
subset: function(props) {
|
|||
|
|
var sobj = {};
|
|||
|
|
if (!props || !props.length) return sobj;
|
|||
|
|
this.isArray(props) || (props = [ props ]);
|
|||
|
|
utils.forEach(Array.prototype.slice.call(arguments, 1), function(source) {
|
|||
|
|
if (source) for (var i = 0, len = props.length; i < len; i++) source.hasOwnProperty(props[i]) && (sobj[props[i]] = source[props[i]]);
|
|||
|
|
});
|
|||
|
|
return sobj;
|
|||
|
|
},
|
|||
|
|
isArray: function(obj) {
|
|||
|
|
return Array.isArray ? Array.isArray(obj) : "[object Array]" === Object.prototype.toString.call(obj);
|
|||
|
|
},
|
|||
|
|
isObject: function(obj) {
|
|||
|
|
return "[object Object]" === Object.prototype.toString.call(obj);
|
|||
|
|
},
|
|||
|
|
isFunction: function(obj) {
|
|||
|
|
return "[object Function]" === Object.prototype.toString.call(obj);
|
|||
|
|
},
|
|||
|
|
isNumber: function(obj) {
|
|||
|
|
return "[object Number]" === Object.prototype.toString.call(obj);
|
|||
|
|
},
|
|||
|
|
isString: function(obj) {
|
|||
|
|
return "[object String]" === Object.prototype.toString.call(obj);
|
|||
|
|
},
|
|||
|
|
isHTMLElement: function(n) {
|
|||
|
|
return window["HTMLElement"] || window["Element"] ? n instanceof (window["HTMLElement"] || window["Element"]) : n && "object" == typeof n && 1 === n.nodeType && "string" == typeof n.nodeName;
|
|||
|
|
},
|
|||
|
|
isSVGElement: function(n) {
|
|||
|
|
return window["SVGElement"] && n instanceof window["SVGElement"];
|
|||
|
|
},
|
|||
|
|
isDefined: function(v) {
|
|||
|
|
return "undefined" != typeof v;
|
|||
|
|
},
|
|||
|
|
random: function(length) {
|
|||
|
|
var str = "", chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz", clen = chars.length;
|
|||
|
|
length || (length = 6);
|
|||
|
|
for (var i = 0; i < length; i++) str += chars.charAt(this.randomInt(0, clen - 1));
|
|||
|
|
return str;
|
|||
|
|
},
|
|||
|
|
randomInt: function(min, max) {
|
|||
|
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|||
|
|
},
|
|||
|
|
inherit: function(child, parent) {
|
|||
|
|
function Ctor() {
|
|||
|
|
this.constructor = child;
|
|||
|
|
}
|
|||
|
|
for (var key in parent) parent.hasOwnProperty(key) && (child[key] = parent[key]);
|
|||
|
|
Ctor.prototype = parent.prototype;
|
|||
|
|
child.prototype = new Ctor();
|
|||
|
|
child.__super__ = parent.prototype;
|
|||
|
|
return child;
|
|||
|
|
},
|
|||
|
|
trim: function(s) {
|
|||
|
|
return s ? s.trim ? s.trim() : s.replace(/^\s+|\s+$/gm, "") : "";
|
|||
|
|
},
|
|||
|
|
trigger: function(el, evt, detail) {
|
|||
|
|
if (el) {
|
|||
|
|
detail = detail || {};
|
|||
|
|
var e, opt = {
|
|||
|
|
bubbles: !0,
|
|||
|
|
cancelable: !0,
|
|||
|
|
detail: detail
|
|||
|
|
};
|
|||
|
|
if ("undefined" != typeof CustomEvent) {
|
|||
|
|
e = new CustomEvent(evt, opt);
|
|||
|
|
el.dispatchEvent(e);
|
|||
|
|
} else try {
|
|||
|
|
e = document.createEvent("CustomEvent");
|
|||
|
|
e.initCustomEvent(evt, !0, !0, detail);
|
|||
|
|
el.dispatchEvent(e);
|
|||
|
|
} catch (exp) {
|
|||
|
|
this.log.error(exp);
|
|||
|
|
}
|
|||
|
|
return !0;
|
|||
|
|
}
|
|||
|
|
this.log.error("emply element passed in");
|
|||
|
|
},
|
|||
|
|
nextTick: function(f) {
|
|||
|
|
("object" == typeof process && process.nextTick ? process.nextTick : function(task) {
|
|||
|
|
setTimeout(task, 0);
|
|||
|
|
})(f);
|
|||
|
|
},
|
|||
|
|
removeFromArray: function(arr, val) {
|
|||
|
|
var index = arr.indexOf(val);
|
|||
|
|
index > -1 && arr.splice(index, 1);
|
|||
|
|
return index;
|
|||
|
|
},
|
|||
|
|
debounce: function(func, wait, immediate) {
|
|||
|
|
var timeout, args, context, timestamp, result, later = function() {
|
|||
|
|
var last = utils.now() - timestamp;
|
|||
|
|
if (last < wait && last >= 0) timeout = setTimeout(later, wait - last); else {
|
|||
|
|
timeout = null;
|
|||
|
|
if (!immediate) {
|
|||
|
|
result = func.apply(context, args);
|
|||
|
|
timeout || (context = args = null);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
return function() {
|
|||
|
|
context = this;
|
|||
|
|
args = arguments;
|
|||
|
|
timestamp = utils.now();
|
|||
|
|
var callNow = immediate && !timeout;
|
|||
|
|
timeout || (timeout = setTimeout(later, wait));
|
|||
|
|
if (callNow) {
|
|||
|
|
result = func.apply(context, args);
|
|||
|
|
context = args = null;
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
throttle: function(func, wait, options) {
|
|||
|
|
var context, args, result, timeout = null, previous = 0;
|
|||
|
|
options || (options = {});
|
|||
|
|
var later = function() {
|
|||
|
|
previous = options.leading === !1 ? 0 : utils.now();
|
|||
|
|
timeout = null;
|
|||
|
|
result = func.apply(context, args);
|
|||
|
|
timeout || (context = args = null);
|
|||
|
|
};
|
|||
|
|
return function() {
|
|||
|
|
var now = utils.now();
|
|||
|
|
previous || options.leading !== !1 || (previous = now);
|
|||
|
|
var remaining = wait - (now - previous);
|
|||
|
|
context = this;
|
|||
|
|
args = arguments;
|
|||
|
|
if (remaining <= 0 || remaining > wait) {
|
|||
|
|
if (timeout) {
|
|||
|
|
clearTimeout(timeout);
|
|||
|
|
timeout = null;
|
|||
|
|
}
|
|||
|
|
previous = now;
|
|||
|
|
result = func.apply(context, args);
|
|||
|
|
timeout || (context = args = null);
|
|||
|
|
} else timeout || options.trailing === !1 || (timeout = setTimeout(later, remaining));
|
|||
|
|
return result;
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
ucfirst: function(string) {
|
|||
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|||
|
|
},
|
|||
|
|
escapeHtml: function(text) {
|
|||
|
|
var map = {
|
|||
|
|
"&": "&",
|
|||
|
|
"<": "<",
|
|||
|
|
">": ">",
|
|||
|
|
'"': """,
|
|||
|
|
"'": "'",
|
|||
|
|
"`": "`"
|
|||
|
|
};
|
|||
|
|
return (text + "").replace(/[&<>"']/g, function(m) {
|
|||
|
|
return map[m];
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
utils.setDebugMode(!1);
|
|||
|
|
return utils;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/detect-global", [ "./utils" ], function(utils) {
|
|||
|
|
var global = this;
|
|||
|
|
return {
|
|||
|
|
load: function(name, req, onLoad, config) {
|
|||
|
|
for (var parts = name.split("|"), gVars = parts[0].split(","), finalMod = parts[1], i = 0, len = gVars.length; i < len; i++) {
|
|||
|
|
var vname = utils.trim(gVars[i]);
|
|||
|
|
if (global[vname]) {
|
|||
|
|
onLoad(global[vname]);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (!finalMod) throw new Error("can't find: " + name);
|
|||
|
|
req([ finalMod ], function(value) {
|
|||
|
|
onLoad(value);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/$", [ "lib/detect-global!jQuery,Zepto|" + (AMap.UA.mobile ? "zepto" : "jquery") ], function($) {
|
|||
|
|
return $;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/conf", [ "module" ], function(mod) {
|
|||
|
|
return mod.config();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/dom.utils", [], function() {
|
|||
|
|
var domUtils = {
|
|||
|
|
isCanvasSupported: function() {
|
|||
|
|
var elem = document.createElement("canvas");
|
|||
|
|
return !!(elem && elem.getContext && elem.getContext("2d"));
|
|||
|
|
},
|
|||
|
|
toggleClass: function(el, name, add) {
|
|||
|
|
add ? domUtils.addClass(el, name) : domUtils.removeClass(el, name);
|
|||
|
|
},
|
|||
|
|
addClass: function(el, name) {
|
|||
|
|
el && name && (domUtils.hasClassName(el, name) || (el.className += (el.className ? " " : "") + name));
|
|||
|
|
},
|
|||
|
|
removeClass: function(el, name) {
|
|||
|
|
function replaceFn(w, match) {
|
|||
|
|
return match === name ? "" : w;
|
|||
|
|
}
|
|||
|
|
el && name && (el.className = el.className.replace(/(\S+)\s*/g, replaceFn).replace(/(^\s+|\s+$)/, ""));
|
|||
|
|
},
|
|||
|
|
hasClassName: function(ele, className) {
|
|||
|
|
var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
|
|||
|
|
return testClass.test(ele.className);
|
|||
|
|
},
|
|||
|
|
getElementsByClassName: function(className, tag, parent) {
|
|||
|
|
tag = tag || "*";
|
|||
|
|
parent = parent || document;
|
|||
|
|
if (parent.getElementsByClassName) return parent.getElementsByClassName(className);
|
|||
|
|
for (var current, elements = parent.getElementsByTagName(tag), returnElements = [], i = 0; i < elements.length; i++) {
|
|||
|
|
current = elements[i];
|
|||
|
|
domUtils.hasClassName(current, className) && returnElements.push(current);
|
|||
|
|
}
|
|||
|
|
return returnElements;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
return domUtils;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/event", [ "lib/utils" ], function(utils) {
|
|||
|
|
"use strict";
|
|||
|
|
function Event() {
|
|||
|
|
this.__evHash = {};
|
|||
|
|
}
|
|||
|
|
utils.extend(Event.prototype, {
|
|||
|
|
on: function(ev, listener, priority) {
|
|||
|
|
if (this.__multiCall(ev, listener, this.on)) return this;
|
|||
|
|
if (!ev) return this;
|
|||
|
|
var evHash = this.__evHash;
|
|||
|
|
evHash[ev] || (evHash[ev] = []);
|
|||
|
|
var list = evHash[ev], index = this.__index(list, listener);
|
|||
|
|
if (index < 0) {
|
|||
|
|
"number" != typeof priority && (priority = 10);
|
|||
|
|
for (var inps = list.length, i = 0, len = list.length; i < len; i++) if (priority > list[i].priority) {
|
|||
|
|
inps = i;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
list.splice(inps, 0, {
|
|||
|
|
listener: listener,
|
|||
|
|
priority: priority
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
return this;
|
|||
|
|
},
|
|||
|
|
once: function(ev, listener, priority) {
|
|||
|
|
function oncefunc() {
|
|||
|
|
self.__callListenser(listener, arguments);
|
|||
|
|
self.off(ev, oncefunc);
|
|||
|
|
}
|
|||
|
|
if (this.__multiCall(ev, listener, this.once)) return this;
|
|||
|
|
var self = this;
|
|||
|
|
this.on(ev, oncefunc, priority);
|
|||
|
|
return this;
|
|||
|
|
},
|
|||
|
|
offAll: function() {
|
|||
|
|
for (var ev in this.__evHash) this.off(ev);
|
|||
|
|
this.__evHash = {};
|
|||
|
|
return this;
|
|||
|
|
},
|
|||
|
|
off: function(ev, listener) {
|
|||
|
|
if (this.__multiCall(ev, listener, this.off)) return this;
|
|||
|
|
var evHash = this.__evHash;
|
|||
|
|
if (evHash[ev]) {
|
|||
|
|
var list = evHash[ev];
|
|||
|
|
if ("undefined" == typeof listener) {
|
|||
|
|
var c = list.length;
|
|||
|
|
list.length = 0;
|
|||
|
|
return c;
|
|||
|
|
}
|
|||
|
|
var index = this.__index(list, listener);
|
|||
|
|
if (index >= 0) {
|
|||
|
|
list.splice(index, 1);
|
|||
|
|
return 1;
|
|||
|
|
}
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
listenerLength: function(ev) {
|
|||
|
|
var evHash = this.__evHash, list = evHash[ev];
|
|||
|
|
return list ? list.length : 0;
|
|||
|
|
},
|
|||
|
|
emit: function(ev) {
|
|||
|
|
var args, list, evHash = this.__evHash, count = 0;
|
|||
|
|
list = evHash[ev];
|
|||
|
|
if (list && list.length) {
|
|||
|
|
args = Array.prototype.slice.call(arguments, 1);
|
|||
|
|
count += this.__callListenerList(list, args);
|
|||
|
|
}
|
|||
|
|
list = evHash["*"];
|
|||
|
|
if (list && list.length) {
|
|||
|
|
args = Array.prototype.slice.call(arguments);
|
|||
|
|
count += this.__callListenerList(list, args);
|
|||
|
|
}
|
|||
|
|
return count;
|
|||
|
|
},
|
|||
|
|
trigger: function(ev) {
|
|||
|
|
var args = Array.prototype.slice.call(arguments, 0);
|
|||
|
|
args.splice(1, 0, {
|
|||
|
|
type: ev,
|
|||
|
|
target: this
|
|||
|
|
});
|
|||
|
|
this.emit.apply(this, args);
|
|||
|
|
},
|
|||
|
|
triggerWithOriginalEvent: function(ev, originalEvent) {
|
|||
|
|
var args = Array.prototype.slice.call(arguments, 0);
|
|||
|
|
args[1] = {
|
|||
|
|
type: ev,
|
|||
|
|
target: originalEvent ? originalEvent.target : this,
|
|||
|
|
originalEvent: originalEvent
|
|||
|
|
};
|
|||
|
|
this.emit.apply(this, args);
|
|||
|
|
},
|
|||
|
|
onDestroy: function(cb, priority) {
|
|||
|
|
this.on("__destroy", cb, priority);
|
|||
|
|
return this;
|
|||
|
|
},
|
|||
|
|
destroy: function() {
|
|||
|
|
if (!this.__destroying) {
|
|||
|
|
this.__destroying = 1;
|
|||
|
|
this.emit("__destroy", this);
|
|||
|
|
this.offAll();
|
|||
|
|
return this;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
__multiCall: function(ev, listener, func) {
|
|||
|
|
if (!ev) return !0;
|
|||
|
|
if (utils.isObject(ev) && "undefined" == typeof listener) {
|
|||
|
|
for (var k in ev) func.call(this, k, ev[k]);
|
|||
|
|
return !0;
|
|||
|
|
}
|
|||
|
|
var evs;
|
|||
|
|
utils.isArray(ev) ? evs = ev : "string" == typeof ev && (evs = ev.split(/[\s,]+/));
|
|||
|
|
if (evs && evs.length > 1) {
|
|||
|
|
for (var i = 0, len = evs.length; i < len; i++) evs[i] && func.call(this, evs[i], listener);
|
|||
|
|
return !0;
|
|||
|
|
}
|
|||
|
|
return !1;
|
|||
|
|
},
|
|||
|
|
__index: function(list, listener) {
|
|||
|
|
for (var index = -1, i = 0, len = list.length; i < len; i++) {
|
|||
|
|
var ele = list[i];
|
|||
|
|
if (ele.listener === listener) {
|
|||
|
|
index = i;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return index;
|
|||
|
|
},
|
|||
|
|
__callListenser: function(listener, args) {
|
|||
|
|
var func = null, contxt = null;
|
|||
|
|
if ("function" == typeof listener) {
|
|||
|
|
func = listener;
|
|||
|
|
contxt = this;
|
|||
|
|
} else if (2 == listener.length) {
|
|||
|
|
func = listener[1];
|
|||
|
|
contxt = listener[0];
|
|||
|
|
}
|
|||
|
|
return func ? [ 1, func.apply(contxt, args) ] : [ 0, void 0 ];
|
|||
|
|
},
|
|||
|
|
__callListenerList: function(list, args) {
|
|||
|
|
if (!list || !list.length) return 0;
|
|||
|
|
list = [].concat(list);
|
|||
|
|
for (var cres, count = 0, i = 0, len = list.length; i < len; i++) {
|
|||
|
|
cres = this.__callListenser(list[i].listener, args);
|
|||
|
|
count += cres[0];
|
|||
|
|
if (cres[1] === !1) break;
|
|||
|
|
}
|
|||
|
|
return count;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
return Event;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/underscore-tpl", [], function() {
|
|||
|
|
function escapeHtml(text) {
|
|||
|
|
var map = {
|
|||
|
|
"&": "&",
|
|||
|
|
"<": "<",
|
|||
|
|
">": ">",
|
|||
|
|
'"': """,
|
|||
|
|
"'": "'",
|
|||
|
|
"`": "`"
|
|||
|
|
};
|
|||
|
|
return (text + "").replace(/[&<>"']/g, function(m) {
|
|||
|
|
return map[m];
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
function tmpl(text, data) {
|
|||
|
|
var settings = templateSettings, matcher = new RegExp([ (settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source ].join("|") + "|$", "g"), index = 0, source = "__p+='";
|
|||
|
|
text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
|
|||
|
|
source += text.slice(index, offset).replace(escapeRegExp, escapeChar);
|
|||
|
|
index = offset + match.length;
|
|||
|
|
escape ? source += "'+\n((__t=(" + escape + "))==null?'':" + innerContextVarName + ".escape(__t))+\n'" : interpolate ? source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'" : evaluate && (source += "';\n" + evaluate + "\n__p+='");
|
|||
|
|
return match;
|
|||
|
|
});
|
|||
|
|
source += "';\n";
|
|||
|
|
settings.variable || (source = "with(obj||{}){\n" + source + "}\n");
|
|||
|
|
source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n";
|
|||
|
|
var render;
|
|||
|
|
try {
|
|||
|
|
render = new Function(settings.variable || "obj", innerContextVarName, source);
|
|||
|
|
} catch (e) {
|
|||
|
|
e.source = source;
|
|||
|
|
throw e;
|
|||
|
|
}
|
|||
|
|
var template = function(data) {
|
|||
|
|
return render.call(this, data, {
|
|||
|
|
escape: escapeHtml,
|
|||
|
|
template: tmpl
|
|||
|
|
});
|
|||
|
|
}, argument = settings.variable || "obj";
|
|||
|
|
template.source = "function(" + argument + "){\n" + source + "}";
|
|||
|
|
return data ? template(data) : template;
|
|||
|
|
}
|
|||
|
|
var templateSettings = {
|
|||
|
|
evaluate: /<%([\s\S]+?)%>/g,
|
|||
|
|
interpolate: /<%=([\s\S]+?)%>/g,
|
|||
|
|
escape: /<%-([\s\S]+?)%>/g
|
|||
|
|
}, noMatch = /(.)^/, escapes = {
|
|||
|
|
"'": "'",
|
|||
|
|
"\\": "\\",
|
|||
|
|
"\r": "r",
|
|||
|
|
"\n": "n",
|
|||
|
|
"\u2028": "u2028",
|
|||
|
|
"\u2029": "u2029"
|
|||
|
|
}, escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g, escapeChar = function(match) {
|
|||
|
|
return "\\" + escapes[match];
|
|||
|
|
}, innerContextVarName = "_amapui_tpl_cxt_";
|
|||
|
|
return tmpl;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("lib/SphericalMercator", [], function() {
|
|||
|
|
function getScale(level) {
|
|||
|
|
scaleCache[level] || (scaleCache[level] = 256 * Math.pow(2, level));
|
|||
|
|
return scaleCache[level];
|
|||
|
|
}
|
|||
|
|
function project(lnglat) {
|
|||
|
|
var lat = lnglat[1], x = lnglat[0] * deg2rad, y = lat * deg2rad;
|
|||
|
|
y = Math.log(Math.tan(quadPI + y / 2));
|
|||
|
|
return [ x, y ];
|
|||
|
|
}
|
|||
|
|
function transform(point, scale) {
|
|||
|
|
scale = scale || 1;
|
|||
|
|
var a = half2PI, b = .5, c = -a, d = .5;
|
|||
|
|
return [ scale * (a * point[0] + b), scale * (c * point[1] + d) ];
|
|||
|
|
}
|
|||
|
|
function unproject(point) {
|
|||
|
|
var lng = point[0] * rad2deg, lat = (2 * Math.atan(Math.exp(point[1])) - Math.PI / 2) * rad2deg;
|
|||
|
|
return [ parseFloat(lng.toFixed(6)), parseFloat(lat.toFixed(6)) ];
|
|||
|
|
}
|
|||
|
|
function untransform(point, scale) {
|
|||
|
|
var a = half2PI, b = .5, c = -a, d = .5;
|
|||
|
|
return [ (point[0] / scale - b) / a, (point[1] / scale - d) / c ];
|
|||
|
|
}
|
|||
|
|
function lngLatToPointByScale(lnglat, scale, round) {
|
|||
|
|
var p = transform(project(lnglat), scale);
|
|||
|
|
if (round) {
|
|||
|
|
p[0] = Math.round(p[0]);
|
|||
|
|
p[1] = Math.round(p[1]);
|
|||
|
|
}
|
|||
|
|
return p;
|
|||
|
|
}
|
|||
|
|
function lngLatToPoint(lnglat, level, round) {
|
|||
|
|
return lngLatToPointByScale(lnglat, getScale(level), round);
|
|||
|
|
}
|
|||
|
|
function pointToLngLat(point, level) {
|
|||
|
|
var scale = getScale(level), untransformedPoint = untransform(point, scale);
|
|||
|
|
return unproject(untransformedPoint);
|
|||
|
|
}
|
|||
|
|
function haversineDistance(point1, point2) {
|
|||
|
|
var cos = Math.cos, lat1 = point1[1] * deg2rad, lon1 = point1[0] * deg2rad, lat2 = point2[1] * deg2rad, lon2 = point2[0] * deg2rad, dLat = lat2 - lat1, dLon = lon2 - lon1, a = (1 - cos(dLat) + (1 - cos(dLon)) * cos(lat1) * cos(lat2)) / 2;
|
|||
|
|
return earthDiameter * Math.asin(Math.sqrt(a));
|
|||
|
|
}
|
|||
|
|
var scaleCache = {}, earthDiameter = 12756274, deg2rad = Math.PI / 180, rad2deg = 180 / Math.PI, quadPI = Math.PI / 4, half2PI = .5 / Math.PI;
|
|||
|
|
return {
|
|||
|
|
haversineDistance: haversineDistance,
|
|||
|
|
getScale: getScale,
|
|||
|
|
lngLatToPointByScale: lngLatToPointByScale,
|
|||
|
|
pointToLngLat: pointToLngLat,
|
|||
|
|
lngLatToPoint: lngLatToPoint
|
|||
|
|
};
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
AMapUI.define("_auto/lib", function() {});
|
|||
|
|
AMapUI.requireConf = {
|
|||
|
|
"skipDataMain": true,
|
|||
|
|
"config": {
|
|||
|
|
"lib/conf": {
|
|||
|
|
"productWebRoot": "//webapi.amap.com/ui",
|
|||
|
|
"mainVersion": "1.1",
|
|||
|
|
"patchVersion": "2",
|
|||
|
|
"fullVersion": "1.1.2"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"map": {
|
|||
|
|
"*": {
|
|||
|
|
"css": "polyfill/require/require-css/css",
|
|||
|
|
"text": "polyfill/require/require-text/text",
|
|||
|
|
"json": "polyfill/require/require-json/json"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"shim": {
|
|||
|
|
"jquery": {
|
|||
|
|
"exports": "$"
|
|||
|
|
},
|
|||
|
|
"zepto": {
|
|||
|
|
"exports": "$"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"paths": {
|
|||
|
|
"jquery": "plug/ext/jquery-1.12.4.min",
|
|||
|
|
"zepto": "plug/ext/zepto-1.2.0.min"
|
|||
|
|
},
|
|||
|
|
"baseUrl": "//webapi.amap.com/ui/1.1/",
|
|||
|
|
"baseUrlProtocol": null
|
|||
|
|
};
|
|||
|
|
AMapUI.libConf = AMapUI.requireConf.config["lib/conf"];
|
|||
|
|
AMapUI.uiMods = [
|
|||
|
|
"ui/control/BasicControl",
|
|||
|
|
"ui/geo/DistrictCluster",
|
|||
|
|
"ui/geo/DistrictExplorer",
|
|||
|
|
"ui/misc/MarkerList",
|
|||
|
|
"ui/misc/MobiCityPicker",
|
|||
|
|
"ui/misc/PathSimplifier",
|
|||
|
|
"ui/misc/PoiPicker",
|
|||
|
|
"ui/misc/PointSimplifier",
|
|||
|
|
"ui/misc/PointSimplifr",
|
|||
|
|
"ui/misc/PositionPicker",
|
|||
|
|
"ui/overlay/AwesomeMarker",
|
|||
|
|
"ui/overlay/SimpleInfoWindow",
|
|||
|
|
"ui/overlay/SimpleMarker",
|
|||
|
|
"ui/overlay/SvgMarker"
|
|||
|
|
];
|
|||
|
|
!function(ns, window) {
|
|||
|
|
function getParameterByName(name) {
|
|||
|
|
var match = new RegExp("[?&]" + name + "=([^&]*)").exec(window.location.search);
|
|||
|
|
return match && decodeURIComponent(match[1].replace(/\+/g, " "));
|
|||
|
|
}
|
|||
|
|
function getAMapKey() {
|
|||
|
|
return AMap.User ? AMap.User.key : "";
|
|||
|
|
}
|
|||
|
|
function arrForEach(array, callback, thisArg) {
|
|||
|
|
if (array.forEach) return array.forEach(callback, thisArg);
|
|||
|
|
for (var i = 0, len = array.length; i < len; i++) callback.call(thisArg, array[i], i);
|
|||
|
|
}
|
|||
|
|
function extendObj(dst) {
|
|||
|
|
dst || (dst = {});
|
|||
|
|
arrForEach(Array.prototype.slice.call(arguments, 1), function(source) {
|
|||
|
|
if (source) for (var prop in source) source.hasOwnProperty(prop) && (dst[prop] = source[prop]);
|
|||
|
|
});
|
|||
|
|
return dst;
|
|||
|
|
}
|
|||
|
|
var libConf = ns.libConf, reqConf = ns.requireConf, uiMods = ns.uiMods || [];
|
|||
|
|
ns.docProtocol = "https:" === document.location.protocol ? "https:" : "http:";
|
|||
|
|
window.AMapUIProtocol && (ns.docProtocol = window.AMapUIProtocol);
|
|||
|
|
window.AMapUIBaseUrl && (reqConf.baseUrl = window.AMapUIBaseUrl);
|
|||
|
|
0 === reqConf.baseUrl.indexOf("//") && (reqConf.baseUrl = ns.docProtocol + reqConf.baseUrl);
|
|||
|
|
var getAbsoluteUrl = function() {
|
|||
|
|
var div = document.createElement("div");
|
|||
|
|
div.innerHTML = "<a></a>";
|
|||
|
|
return function(url) {
|
|||
|
|
div.firstChild.href = url;
|
|||
|
|
div.innerHTML = div.innerHTML;
|
|||
|
|
return div.firstChild.href;
|
|||
|
|
};
|
|||
|
|
}();
|
|||
|
|
ns.getAbsoluteUrl = getAbsoluteUrl;
|
|||
|
|
getParameterByName("debugAMapUI") && (libConf.debugMode = !0);
|
|||
|
|
var isDebugMode = !!libConf.debugMode;
|
|||
|
|
ns.version = libConf.version = libConf.mainVersion + "." + libConf.patchVersion;
|
|||
|
|
if (!isDebugMode) {
|
|||
|
|
reqConf.bundles || (reqConf.bundles = {});
|
|||
|
|
for (var reqBundles = reqConf.bundles, i = 0, len = uiMods.length; i < len; i++) {
|
|||
|
|
var uiModId = uiMods[i];
|
|||
|
|
reqBundles[uiModId] || (reqBundles[uiModId] = []);
|
|||
|
|
reqBundles[uiModId].push(uiMods[i] + "/main");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
ns.getBaseUrl = function() {
|
|||
|
|
return reqConf.baseUrl;
|
|||
|
|
};
|
|||
|
|
reqConf.urlArgs = function(id, url) {
|
|||
|
|
var args = [];
|
|||
|
|
args.push("v=" + ns.version);
|
|||
|
|
isDebugMode && args.push("_t=" + Date.now());
|
|||
|
|
if (0 === id.indexOf("ui/")) {
|
|||
|
|
var parts = id.split("/");
|
|||
|
|
(3 === parts.length || 4 === parts.length && "main" === parts[3]) && args.push("mt=ui");
|
|||
|
|
args.push("key=" + getAMapKey());
|
|||
|
|
}
|
|||
|
|
return (url.indexOf("?") < 0 ? "?" : "&") + args.join("&");
|
|||
|
|
};
|
|||
|
|
var requireContentName = "amap-ui-" + ns.version;
|
|||
|
|
ns.require = ns.requirejs.config(extendObj({
|
|||
|
|
context: requireContentName
|
|||
|
|
}, reqConf));
|
|||
|
|
ns.UI = ns.UI || {};
|
|||
|
|
ns.findDefinedId = function(test, thisArg) {
|
|||
|
|
var requirejs = ns.requirejs;
|
|||
|
|
if (!requirejs.s || !requirejs.s.contexts) return null;
|
|||
|
|
var contexts = requirejs.s.contexts[requireContentName];
|
|||
|
|
if (!contexts) return null;
|
|||
|
|
var defined = contexts.defined;
|
|||
|
|
for (var k in defined) if (defined.hasOwnProperty(k) && test.call(thisArg, k)) return k;
|
|||
|
|
return null;
|
|||
|
|
};
|
|||
|
|
ns.weakDefine = function(name) {
|
|||
|
|
return ("string" != typeof name || !ns.require.defined(name)) && ns.define.apply(ns, arguments);
|
|||
|
|
};
|
|||
|
|
ns.defineTpl = function(name) {
|
|||
|
|
if ("string" != typeof name) throw new Error("tpl name is supposed to be a string");
|
|||
|
|
var args = Array.prototype.slice.call(arguments, 0);
|
|||
|
|
args[0] = "polyfill/require/require-text/text!" + args[0];
|
|||
|
|
return ns.define.apply(ns, args);
|
|||
|
|
};
|
|||
|
|
ns.setDomLibrary = function($) {
|
|||
|
|
ns.require.undef("lib/$");
|
|||
|
|
ns.define("lib/$", [], function() {
|
|||
|
|
return $;
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.inspectDomLibrary = function($) {
|
|||
|
|
var isJQuery = $.fn && $.fn.jquery, isZepto = $ === window.Zepto;
|
|||
|
|
return {
|
|||
|
|
isJQuery: !!isJQuery,
|
|||
|
|
isZepto: isZepto,
|
|||
|
|
version: isJQuery ? $.fn.jquery : "unknown"
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
ns.versionCompare = function(left, right) {
|
|||
|
|
if (typeof left + typeof right != "stringstring") return !1;
|
|||
|
|
for (var a = left.split("."), b = right.split("."), i = 0, len = Math.max(a.length, b.length); i < len; i++) {
|
|||
|
|
if (a[i] && !b[i] && parseInt(a[i], 10) > 0 || parseInt(a[i], 10) > parseInt(b[i], 10)) return 1;
|
|||
|
|
if (b[i] && !a[i] && parseInt(b[i], 10) > 0 || parseInt(a[i], 10) < parseInt(b[i], 10)) return -1;
|
|||
|
|
}
|
|||
|
|
return 0;
|
|||
|
|
};
|
|||
|
|
ns.checkDomLibrary = function($, opts) {
|
|||
|
|
opts = extendObj({
|
|||
|
|
minJQueryVersion: "1.3"
|
|||
|
|
}, opts);
|
|||
|
|
var libInfo = ns.inspectDomLibrary($);
|
|||
|
|
return !(libInfo.isJQuery && ns.versionCompare(libInfo.version, opts.minJQueryVersion) < 0) || "jQuery当前版本(" + libInfo.version + ")过低,请更新到 " + opts.minJQueryVersion + " 或以上版本!";
|
|||
|
|
};
|
|||
|
|
ns.setDebugMode = function(on) {
|
|||
|
|
on = !!on;
|
|||
|
|
ns.debugMode = on;
|
|||
|
|
window.AMapUI_DEBUG = on;
|
|||
|
|
ns.require([ "lib/utils" ], function(utils) {
|
|||
|
|
utils.setDebugMode(ns.debugMode);
|
|||
|
|
ns.debugMode && utils.logger.warn("Debug mode!");
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.setDebugMode(isDebugMode);
|
|||
|
|
ns.load = function(unames, callback, opts) {
|
|||
|
|
ns.require([ "lib/utils" ], function(utils) {
|
|||
|
|
utils.isArray(unames) || (unames = [ unames ]);
|
|||
|
|
for (var uname, mods = [], modNameFilter = opts && opts.modNameFilter, i = 0, len = unames.length; i < len; i++) {
|
|||
|
|
uname = unames[i];
|
|||
|
|
modNameFilter && (uname = modNameFilter.call(null, uname));
|
|||
|
|
ns.debugMode && 0 === uname.indexOf("ui/") && 3 === uname.split("/").length && (uname += "/main");
|
|||
|
|
mods.push(uname);
|
|||
|
|
}
|
|||
|
|
ns.require(mods, callback);
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.loadCss = function(urls, cb) {
|
|||
|
|
ns.load(urls, cb, {
|
|||
|
|
modNameFilter: function(url) {
|
|||
|
|
return "css!" + getAbsoluteUrl(url);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.loadJs = function(urls, cb) {
|
|||
|
|
ns.load(urls, cb, {
|
|||
|
|
modNameFilter: function(url) {
|
|||
|
|
return getAbsoluteUrl(url);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.loadText = function(urls, cb) {
|
|||
|
|
ns.load(urls, cb, {
|
|||
|
|
modNameFilter: function(url) {
|
|||
|
|
return "text!" + getAbsoluteUrl(url);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.loadUI = function(unames, cb) {
|
|||
|
|
ns.load(unames, cb, {
|
|||
|
|
modNameFilter: function(uname) {
|
|||
|
|
return "ui/" + uname;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
ns.loadTpl = function(url, data, cb) {
|
|||
|
|
ns.require([ "lib/underscore-tpl", "text!" + getAbsoluteUrl(url) ], function(template, text) {
|
|||
|
|
cb(template(text, data), {
|
|||
|
|
template: template,
|
|||
|
|
text: text
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
isDebugMode || setTimeout(function() {
|
|||
|
|
ns.loadJs(ns.docProtocol + "//webapi.amap.com/count?type=UIInit&k=" + getAMapKey());
|
|||
|
|
}, 0);
|
|||
|
|
}(AMapUI, window);
|
|||
|
|
window.AMapUI = AMapUI;
|
|||
|
|
}(window));
|