百度地图坐标转换服务封装(优化批量并发异步访问)

本文介绍了一种优化百度地图批量坐标转换的方法,通过闭包和异步递归,解决了批量坐标转换时代码量大、管理复杂的难题。在处理大量坐标纠偏时,避免了分批异步请求的问题,提高了效率。
摘要由CSDN通过智能技术生成

本人接触网页地图以来已有5年之窗,与百度地图打交道少说也有3年以上了,百度坐标转换从最开始的只支持单组坐标转换到现在的批量转换(限制每次100组),而且是无规律的算法纠偏,根本不好复制这种算法到本地进行转换,每次只能乖乖的ajax get到百度服务接口返回结果。

这种做法对于单组坐标的转换体验上影响不大,但是当我们需要纠偏的坐标量很多的时候,按正常的写法ajax异步请求,而且每次最多只能传入100组坐标,只能分批来调,而且是异步处理,还要定义一堆全局变量记住状态值,代码量多且复杂,项目大就难以管理了。

今天终于让我想出了一个优化的解决办法,对这个服务进行封装,闭包内进行异步方法递归,把回调方法传递到最后结果那一处执行并返回结果对象。废话不多说了,直接亮代码,写的不好处欢迎提意见!

baidu.maps.convertor.js文件:

/**
 *! 百度地图坐标转换接口
 *! 支持从gps(真实)坐标、google坐标、soso坐标等转换为百度坐标
 *! 传入百度坐标对象,返回纠偏后的百度坐标对象,注意要在百度地图api环境下调用
 */
(function() {

	var _BAIDU_KEY_ = "xxxxxx";   // 请填写您申请的密钥
	var point_count = [];
	var res = [];

	var convertor = (function() {

		return {
			translate: translate
		};

		/**
		 *  point 为百度的坐标对象,可以是单个坐标对象,也可以为多个坐标对象的数组
		 *  type取值&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值