基于百度地图API的网点成图平台的开发与应用 | ![]() |
随着互联网时代的不断发展,信息的共享与传播等特点逐渐在当今社会体现出来[1]。越来越多的企业管理者开始选择基于GIS技术来管理其商业网点分布,并通过分析其空间属性来探索与其他领域之间的联系,从而进一步挖掘其价值。
由于建设传统GIS平台周期长、过程复杂,且建设成本和维护成本很高,从城市范围、资金和人才各个方面综合考虑,并不适应中小城市的具体情况[2]。因此,基于网络地图公司(如百度、高德等)提供的地图服务接口进行二次开发,构建一个商业网点管理平台已成为首选。国家地理信息公共服务平台天地图获得了广泛应用,取得了巨大的社会效益和经济效益[3]。超图软件公司推出了地图慧[4]在线制图平台,实现了地址数据导入地图模板并快速成图。肖琨等[5]研究了百度地图服务在武汉市地理国情普查数据采集中的应用,提出了一种基于百度地图服务的地址解析方法,并通过自动搜索和调用百度数据资源,实现了地名地址信息的快速、批量定位与上图,在武汉市第一次地理国情普查数据采集中取得了较好效果。Global Incident Map网站是一个专题网络地图网站,用户可以浏览森林火灾分布、疾病爆发区域、持枪事件多发区、边境安全问题集中区等国际安全问题要素[6]。
本文研究了基于百度地图API提供的地址解析接口,并以JavaScript脚本语言为开发语言设计了网点成图平台。
1 平台搭建及功能实现地图API可让第三方网站通过API编程方式调用地图服务网站数据库中的信息和功能[7]。百度地图API是一套供开发者免费进行二次开发的应用接口,它有多种开发工具和服务,包括Web服务API、Android SDK、定位SDK、JavaScript API、LBS云等。用户在使用百度地图API的时候可以在自己的网站中构建功能特别丰富、交互性特别强的地图应用程序[8]。
基于百度地图的网点成图平台采用JavaScript语言,是一种广泛用于客户端的脚本语言,已被广泛用于Web开发。
地址解析及其他地图服务功能主要是调用百度地图API接口实现。就整体结构而言,该成图平台结构(图 1)总共分为3个模块,每个模块对应不同的功能,整个平台基于Web开发,采用了当下流行的二次开发手段,实现了网点快速成图、数据本地读取/存储、视野内搜索POI、实时路况分析等功能。
![]() |
图 1 网点成图平台结构 Fig.1 Structure of Network Map Platform |
2 平台主要功能及实现技术 2.1 调用地址解析接口
地址解析也叫地理编码,在ArcInfo中对地理编码的定义是指在地理特征中加入地址属性, 从而通过输入地址即能确定一个空间位置。在MapInfo中, 所谓地理编码是指根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等), 将数据库中数据与其在地图上相对应的图形元素一一对应的过程[9]。而百度API提供的地址解析接口Geocoder类的工作原理就是对传入的地名地址数据参数进行解析,调用该类中的getPoint()方法后得到所有地址信息对应的经纬度坐标(可以根据需求选择是否输出坐标结果),最终利用addMarker(point)方法将得到的坐标作为参数在地图上打点成图。解析地名地址在代码中的实现过程如下:首先需实例化一个Geocoder类myGeo,定义geocodeSearch()方法,该方法所需的参数为地名地址数据Add。然后在该方法中调用实例化对象myGeo中的getPoint()方法,经过此过程后便可以得到解析后的经纬度坐标。因为实现的功能是批量解析,所以可设置adds[]数组用来存放多条地址数据,然后在geocodeSearch()方法外嵌套循环读取数组中的地址代码即可实现地址批量解析。
2.2 数据的读取与输出JavaScript脚本语言不依赖于操作系统, 仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用, 前提是机器上的浏览器支持JavaScript脚本语言, 目前JavaScript已被大多数的浏览器所支持[10]。JavaScript语言与服务器端脚本语言有所不同,JavaScript作为客户端脚本语言通常由用户在本机的浏览器上直接调试运行,并不需要后台服务器的支持。所以在数据交互方面考虑了采用ActiveX控件户本机文件权限的方式来读取数据,而数据都以Excel表格文件的形式存储即可。选择直接在浏览器端操作数据一方面减少了该平台的建设周期同时省去了数据库、服务器的维护等工作,从而也简化了用户操作数据的过程。只需在客户端安装Microsoft Office办公软件,便可以对数据进行编辑操作,同时结合成图平台读取数据并快速制图,提高了工作效率。
2.3 地图服务及平台优化GIS平台不仅仅将兴趣点要素标注在地图上实现可视化,而是通过一些方法分析各地物的自身属性信息及其之间的空间关系来为用户提供决策支持。因此在该平台中添加了相关的地图服务。如视野范围内POI搜索、交通路况实时显示等。
视野范围内POI搜索的原理:首先,实例化百度地图服务的LocalSearch类;然后,在自定义的一个方法fun_searchInBounds()中调用实例化后的对象myLocalsearch中的searchInBounds()方法。在平台中通过搜索框与按钮的组合形式来呈现,添加该服务功能的目的是为了网点管理者可以在所管理的网点区域内,寻找与该行业可能进行商务合作的其他兴趣点,例如在某品牌餐饮外卖网点分布中可以寻找写字楼、办公楼之类的兴趣点信息,那么双方则可以尝试员工外卖订餐之类的合作。在万物联系与共享信息的时代,借用GIS的手段寻找新的商机,实现互利共赢的合作发展。
交通路况实时显示则是在代码中通过引入百度地图1.4版本的TrafficControl的js文件来实现的,目的则是为了管理者实时了解网点位置周围的交通状况以便在应急、工作出行方面作出决策。至于优化方面添加了地图主题切换选项,满足制图个性化的要求,同时为地图添加了地图类型选项,除了基本地图之外还添加了卫星、三维两种地图类型选项,在不同的情况下切换符号要求的类型。
3 平台的应用及精度验证 3.1 网络专题图的应用打点平台应用的示例数据为通过互联网搜集到的银行地名地址数据,并以Excel表格的形式存储,表格共分为两列:第一列字段为ID号,从1号开始按升序排列;第二列字段则为address,此时address的值为处理成标准化格式的地名地址数据。数据准备完成后可以开始进行打点,打开IE浏览器,并设置允许网页运行ActiveX控件。页面出现后,点击“浏览”按钮,选择存放地名地址数据的文件路径,然后点击“读取”按钮。读取完毕后网页会弹出消息框提示。再选择菜单中的地址解析模块下的地址解析功能,点击该功能后,地图上会逐一进行点的标注,并通过这个数据框“打点数”来显示已经完成标注点的数量,同时地图右方的地址解析结果展示框内也会逐一显示解析过的地址及其经纬度坐标。当“打点数”文本框显示为地址总数目时,则打点结束。为了地图标注显示的合理与美观,没有设置标注上方默认出现文字注记,而是通过单击某条解析结果来快速定位到该点注记并显示地址详情。在解析地名地址的同时,地址坐标也展示在结果列表中(图 2),点击“结果保存”将坐标以Word格式文件存储以作他用。
![]() |
图 2 成图平台 Fig.2 Mapping Platform |
当用户在“视野范围内搜索”查询框内输入某搜索内容如“保险公司”时,那么用户视野内地区的保险公司分布便会在地图上显示出来(图 3),并且标注图标样式有别于打点图标样式。由此可以探寻这两个行业在业务方面是否有商业关联、是否可以建立某种关联。若导入的数据为医院数据,建立医院网络专题图,那么便可以搜索该地区的学校分布,当学校进行学生打疫苗的工作安排时,便可以合理地调度距离某所学校最近的医院来进行此项工作,包括体检、药物资源分配等方面都可以进行初步规划。诸如此类的还有酒店、旅游、餐饮等行业的联系,当今的诸多领域互联网中都有千丝万缕的联系,而该成图平台的功能不仅仅为本领域提供资源的调度及规划,借助其空间属性建立与其他行业的联系也是极为重要的目的。
![]() |
图 3 视野内POI搜索 Fig.3 POI Search in Bounds |
3.2 打点精度的验证
精准无误地将地名地址信息以点要素的方式在地图上呈现出来是一个小型GIS平台的基本要求,精确度则成为考量一个成图平台是否满足基本GIS平台要求的标准。因此针对该成图平台打点的召回率与精确度的考究,在此准备了收集到的12 047条银行地名地址数据作为实验数据来对百度地图Geocoder地址解析API打点的召回率与精确度进行评估,经过该成图平台读取解析实验数据之后得到结果如表 1所示。一般而言,匹配度为80%时结果较为可信,本次数据打点的实验结果精确度为84.55%,超过了80%,所以定位较为准确。而针对无法匹配的错误地址则进行修正,行政区划错误的地址则针对区域统一添加地址前缀某某省某某市;针对详细地址无法匹配的则可以修改地址描述,例如去掉方位词描述、括号中的内容、以地标参照的描述等;针对完全无法匹配的地址,初步分析原因是百度地图地名地址码库中不存在该条记录,解决方案则可以向百度地图官方提交新添地址的申请。
表 1 数据匹配结果表 Tab.1 Data Matching Result |
![]() |
4 结束语
在大数据驱动下,地图应用可拓宽到非空间数据的表达中,对泛在网络空间的网络行为、集合空间的语义信息可视化表达[11-13]。本文以当下流行的二次开发为开发手段,以网络地图为依托平台,通过调用该平台下提供的地图服务接口构建了小型GIS网点成图平台,将原本单一的网点地址文本信息解析成具有空间属性的可视化兴趣点要素。实现了精准快速打点成图,同时结合其他地图服务功能为企业网点管理者管理网点分配、调度资源等提供决策支持。该平台在信息共享与大众制图的时代,将GIS技术融入到其他领域中,具有一定的参考价值。
[1] |
张文静.互联网对大众传播的影响[D].开封: 河南大学, 2015 http://cdmd.cnki.com.cn/Article/CDMD-10475-1015663684.htm
|
[2] |
杜传明. 百度地图API在小型地理信息系统中的应用[J]. 测绘与空间地理信息, 2011, 34(2): 152-153. DOI:10.3969/j.issn.1672-5867.2011.02.052 |
[3] |
李志刚. 建设天地图大数据中心, 打造国家战略性信息基础平台[J]. 测绘地理信息, 2015, 40(2): 10-13. |
[4] |
王少华. 超图平台软件创新:SuperMap GIS 8C简介[J]. 地球信息科学学报, 2016(4): 575-576. |
[5] |
肖琨, 李盼盼, 张雪. 百度地图服务在武汉市地理国情普查数据采集中的应用[J]. 测绘与空间地理信息, 2016, 39(2): 158-160. DOI:10.3969/j.issn.1672-5867.2016.02.049 |
[6] |
Lee B B, Cripps R A, Fitzharris M, et al. The Global Map for Traumatic Spinal Cord Injury Epidemiology: Update 2011, Global Incidence Rate[J]. Spinal Cord, 2014, 52(2): 110-116. DOI:10.1038/sc.2012.158 |
[7] |
王红崧, 周海晏. 基于百度地图API的旅游地理信息系统开发[J]. 现代计算机(专业版), 2012(23): 60-63. |
[8] |
董卓亚. 基于百度地图JavaScript API的通信地图展示[J]. 电子设计工程, 2013(18): 73-76. DOI:10.3969/j.issn.1674-6236.2013.18.022 |
[9] |
江洲, 李琦. 地理编码(Geocoding)的应用研究[J]. 地理与地理信息科学, 2003(3): 22-25. DOI:10.3969/j.issn.1672-0504.2003.03.006 |
[10] |
徐青.JavaScript恶意代码检测技术研究[D].成都: 西南交通大学, 2014 http://cdmd.cnki.com.cn/Article/CDMD-10613-1014254677.htm
|
[11] |
艾廷华. 大数据驱动下的地图学发展[J]. 测绘地理信息, 2016, 41(2): 1-7. |
[12] |
Choi H J, Seo Y H, Kim D W. Noise Reduction for Digital Holograms in a Discrete Cosine Transform (DCT) Domain[J]. Optica Applicata, 2010, 40(4): 103-104. |
[13] |
Rahman A J. The Process of Guideline Development[J]. Annals of Thoracic Medicine, 2008, 3(6): 23-24. |