Saturday, September 8, 2018

MAP API: 中文地址重定位经纬坐标

Introduction

在调用百度API之前,通过参考文献[1]获得一个开发秘钥(AK)。如Fig. 1所示,应用类型“浏览器端”,启用服务“全选”,Referer白名单可以先填“*”(此时任何网站均可访问,存在安全风险),待以后情况补充为特定网站(此时仅指定网站可以访问,安全性即可加强)。 参考文献[2]Python代码不能运行,但其结构、流程具有借鉴意义。
Fig. 1
中文地址不能直接加入URL发出申请,先行转换为URL编码。如上地十街10号,转制为URL编码即为“%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7”(验证地址),基础是UTF-8编码。

BAIDU MAP API

我们使用百度API,以地址返回的是百度坐标(与真实WGS84坐标之间存在一定偏移),一个简单的替代方法减小这种偏移(不是消除偏移),请见参考文献[7]。输入及输出参数配置说明。地址最多支持84个字节等于(UTF-8)28个字,在转为URL编码之前需对地址稍加验证和处理,以符合要求。

时间复杂度

若并行处理(时间必然缩短),请先行注释如下代码:
1
2
3
4
5
6
7
8
if BDcoord>300
    disp('This script had been ended.');
    return;
elseif BDcoord==-1
    invalidlist=[invalidlist; ii];
    disp([num2str(ii), '. not found.']);
    continue;
end
测试情况:1000个地址,顺序查询用时约在5.8分钟。

不同用户每日查询上限

权益对比:未认证用户(6000次/日)、认证个人用户(30万次/日)、认证企业用户(300万次/日)

References

No comments:

Post a Comment