Last active
April 8, 2019 04:30
-
-
Save walkerwzy/718052e1c99e26ab3668 to your computer and use it in GitHub Desktop.
baidu coordinate convertor version 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){ | |
function load_script(xyUrl, callback){ | |
var head = document.getElementsByTagName('head')[0]; | |
var script = document.createElement('script'); | |
script.type = 'text/javascript'; | |
script.src = xyUrl; | |
//借鉴了jQuery的script跨域方法 | |
script.onload = script.onreadystatechange = function(){ | |
if((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")){ | |
callback && callback(); | |
// Handle memory leak in IE | |
script.onload = script.onreadystatechange = null; | |
if ( head && script.parentNode ) { | |
head.removeChild( script ); | |
} | |
} | |
}; | |
// Use insertBefore instead of appendChild to circumvent an IE6 bug. | |
head.insertBefore( script, head.firstChild ); | |
} | |
// 一个文档未列出的接口, 未测试在此接口的情况下做指转换的情况 | |
function translate(point,type,callback){ | |
var callbackName = 'cbk_' + Math.round(Math.random() * 10000); //随机函数名 | |
var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from="+ type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName; | |
//动态创建script标签 | |
load_script(xyUrl); | |
BMap.Convertor[callbackName] = function(xyResult){ | |
delete BMap.Convertor[callbackName]; //调用完需要删除改函数 | |
var point = new BMap.Point(xyResult.x, xyResult.y); | |
callback && callback(point); | |
} | |
} | |
window.BMap = window.BMap || {}; | |
BMap.Convertor = {}; | |
BMap.Convertor.translate = translate; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment