美章网 资料文库 百度地图在衡器行业的应用范文

百度地图在衡器行业的应用范文

本站小编为你精心准备了百度地图在衡器行业的应用参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

百度地图在衡器行业的应用

[摘要]随着“物联网”的概念深入各行各业,其重要的分支领域———“位置应用”也在不断发展。在衡器行业中,以称重传感器+称重仪表+GPS+GPRS+电子地图为主要组成部件的物联网解决方案,已经成功的应用在称重计量领域中。此文主要针对“百度地图”,介绍了其在衡器物联网中的一个典型应用案例。可为类似的物联网方案提供参考。

[关键词]百度地图;WebAPI;javascriptC++

随着信息化社会的发展,“位置应用”已深入到人类生活的方方面面,应用场景包括手机导航、社交网络、车载导航、老年人关爱、应急救援、交通路线规划、医疗定位、物流监控等。在衡器行业中也不例外。作者曾参与了一个“建筑环保砂浆”项目,其中就涉及到了“称重计量”和“位置应用”———两者结合的需求。有了位置信息(即地理坐标)后,就需要有电子地图,来直观呈现远程设备的状态。“百度地图”是众多电子地图中的一员。它稳定可靠、开发文档齐全,并免费向用户提供二次开发API接口。本文将针对“环保砂浆的称重计量”与“百度地图”二者结合应用的方案展开描述。

一、砂浆计量系统的组成

“砂浆站”向“工地”供应“砂浆”(新型环保砂浆),“工地”根据施工进度,对供应量(主要参考重量)进行控制。为了达到“环保”的目的,施工现场严禁露天堆放物料。环保砂浆使用前,以干粉形式储存(所以也叫“干粉砂浆”),现场有专用的储料罐。待到使用时,现场搅拌,用多少搅拌多少。搅拌设备和计量设备配合工作,完成砂浆的配制过程。系统由两部分组成:一是搅拌电气控制部分;二是称重计量部分。两者独立工作,“计量部分”为“搅拌控制部分”提供重量参考。砂浆配置过程由人工操作电气设备完成。计量部分涉及到“位置应用”。各部件分工如下:称重传感器负责重量数据采集(每个罐4只20t传感器),GPS负责坐标信息采集,称重仪表显示重量,并将重量和位置信息通过GPRS传送到远程数据服务器端。用户打开客户端软件,客户端软件将从服务器读取重量和位置信息,在“百度地图”上显示覆盖物(即砂浆罐图标)。用户可以直观的看到砂浆罐的地理位置和罐内储料的当前余量,为后续砂浆运输提供调度依据。“砂浆站”不用派人时刻驻守现场,节省人力资源,提高管理效率。

二、GPS坐标格式及转换

(1)GPS通信数据具有一定的格式,坐标数值需要经过处理,才能被“百度地图”API接口使用。如:GPS原始经度11413.13562,纬度2955.83360,格式为:hhmm.mmmmm(h是‘度’,m是‘分’)。转换成地理坐标后,经度为114+13.13562/60,纬度为29+55.83360/60。然后调用“百度地图”API接口转换成百度DB09Ⅱ坐标类型。(2)GPS坐标为什么要转换?因为GPS原始坐标为WGS84坐标系,不能直接用于“百度地图”。“百度地图”采用的是BD09Ⅱ坐标系。要在“百度地图”上显示GPS设备的正确位置怎么办呢?“百度地图”提供了WebAPI进行转换,你的密钥说明:coords为坐标的经度、纬度;form为转换前的坐标类型,1为WGS84坐标系;to为转换后的坐标类型,5为BD09Ⅱ(百度经、纬度坐标);ak为密钥,开发者在使用“百度地图”前,先要申请开发者密钥。

三、“百度地图”常用的Javascript函数介绍

要完成“百度地图”的二次开发,需要调用一些常用的地图控制JavascriptAPI。

四、地图的显示

有了地图API函数,如何才能将地图显示在我们的软件里呢?如,将地图显示在一个Windows窗口上。因为“百度地图”本身是Web形式的,即B/S模式的。而我们的软件是在Windows桌面上运行的,即是C/S模式的。所以,首要解决的问题是:如何将B/S模式转换为C/S模式,即在Windows窗口上显示web页面。至于是用C/S模式好,还是用B/S模式好?这个问题不是本文讨论的重点。笔者只是根据自己擅长的技术选择C/S模式。作者的解决方法是:“IE浏览器控件”+“HTML页面”的方案。C++Builder的IE浏览器控件名是CppWebBrowser,VC++中的IE浏览器控件名是MicrosoftWebBrowser。他们都封装了IE内核,可以快速开发出属于自己的专用浏览器(如:360双核浏览器,其中有一个核即为IE内核),并可将Web页面嵌入到Windows窗口中。在浏览器控件中,如何控制地图并响应Web页面上的鼠标事件呢?实际上Windows同时提供了浏览器控件的交互COM接口,包含在#include<mshtml.h>头文件中(可参考COM/COM+编程原理)。在开发中有一个特别重要的功能需求:即要能在C++中调用Javascript代码,让IE控件中的页面产生动作。如:改变地图中心、删除/添加地图覆盖物、更新信息提示等。因为微软提供了标准COM交互接口,所以Windows平台上的开发工具,调用方法都类似。HTML文件是一个普通的Web页面文件,中间嵌入“百度地图”容器,并包含了控制地图的Javascript函数。在桌面软件中,利用RunJS函数可以调用这些Javascript代码。Javascript代码和IE内核交互,控制页面内容。HTML文件的具体格式可以参考“百度地图”开发文档。在HTML文件中,须包含这样一行语句:包含了这行代码后,才能调用“百度地图”的API接口函数。HTML文件可以放在服务器端,也可以放在客户端。如果放在服务器端,服务器上要安装“Web服务器”软件。如:IIS、Apache等,其中的一种。

五、“百度地图”在砂浆称重系统中的应用

作者在“建筑环保砂浆”项目中,使用了“百度地图”。在任意一台能连上Internet网络的电脑上,打开专用的客户端软件,软件就能接收服务器的数据,并在地图上显示出各个工地的所有砂浆罐的“当前位置”和“实时重量”信息。要用好“百度地图”,除了掌握C++编程技术外,还需要了解和掌握多种前端和后端的编程技术,如:HTML标记语言、Javascript脚本语言、Web服务器架设、客户端和服务器端的Socket通信、浏览器控件的COM交互接口、“百度地图”的API功能函数、内存数据库等。文中已经介绍了基本的调用流程和关键的知识点。作者在“建筑环保砂浆”项目中——称重计量部分,使用了“百度地图”。经实践检验,达到了预期的效果。“百度地图”虽然是免费的,但也有一些限制。如:API接口调用次数的限制。普通API接口:每个IP每天调用上限2000次;坐标逆向转换API(即GeocodingAPI)调用次数为:每个IP每天调用6000次限制(具体请参考“百度地图”的相关政策)。超过使用次数之后,将返回{"status":302,"message":"天配额超限,限制访问"}。在“建筑环保砂浆”项目中,地图接口API调用不算频繁,所以基本是够用的。如果需要更高频次的调用,需要和“百度”公司协商。本文重点介绍的是“百度地图”的应用。对于其他的电子地图,开发过程也基本相同。当前市面上,除“百度地图”外,还有多种商业电子地图可供选用。如:国外的谷歌地图;国内的搜狗地图、高德地图、腾讯地图等。他们都提供了二次开发接口,且大多是免费的。具体选用哪种,要结合项目的实际需求和“地图服务商”的服务质量,综合考虑。

我想,随着“物联网”(Internetofthings(IoT)的技术普及,关于“地理位置”的应用,需求也会越来越多。除了PC端的应用外,移动端的应用也是方兴未艾。在衡器行业中,应用也会更加广泛。目前,国内衡器公司中,如:耀华、柯力已经推出了成熟的产品和解决方案,起到了行业“桥头堡”的作用,其他公司也会极积跟进,加大研发力度并开拓相关市场。

参考文献:

[1]核心编程[M].清华大学出版社,2008.10.

[2]百度地图开发文档.JavaScriptAPIv2.0[M].开发指南,2014.10.11.

作者:喻刚 单位:宁波臻誉传感科技有限公司