Qt编译地图综合应用12路查询

一、前言

路线查询功能仅适用于在线地图,因为该路线规划需要频繁更新,并且这种数据同步需要大量的人力和物力进行统计,所以该东西必须放在服务器端。即使它像手机一样放在离线本地,也需要定期更新,否则数据可能不正确。路线查询也称为旅行计划。它基本上分为两类。一个在开车,另一个不开车。其中,驾驶员有多策略可供选择,如最短时间、最短距离、避免高速行驶等。而那些不开车的人也有多策略可供选择,比如最短时间、最少换乘、最少步行和没有地铁。默认情况下,路线查询功能现在似乎只支持经度和纬度作为参数。以前,可以直接填写中文,的名字和地名,如门牌号。这种地址解析或反向解析功能需要在后台用相应的密钥打开。

昨天,我重新安排了路径规划的功能,发现官方网站增加了步行和骑行两种路径规划方法。因此,我越来越觉得在服务器上运行的优势,尤其是多,它可以不断优化和更新服务器程序。这使得用户可能没有感知或影响,并且无意识地使用最新的程序和服务。因此,在程序界,的发展中,我经常会遇到客户端或服务器的处理选择。当然,客户也有客户的优势。

二、功能特点

同时,它支持在线地图和离线地图。

同时,支持webkit内核、webengine内核和IE内核。

支持设置多标签点,信息包括姓名、地址、经纬度。

您可以设置是否可以用鼠标滚轮点击、拖动或缩放地图。

您可以设置协议版本、密钥、主题风格、中心坐标、中心城市、地理编码位置等。

您可以设置地图的比例和级别,以及缩略图、比例、路况信息等控件的可见性。

例如,支持地图交互,按鼠标获取相应位置的经度和纬度。

支持路线查询。可以设置起始位置、结束位置、路线模式、路线模式和路线方案(最短时间、最短换乘、最短步行、无地铁、最短距离和避免高速)。

可以显示点、线和表面工具,以及线、点、矩形、圆形等。可以直接画在地图上。

您可以设置行政区划,指定某个城市区域来绘制图层,在线地图会自动将行政区划的边界点输出到js文件,供离线地图使用。

多封面可以静态或动态添加。支持点、折线, 多边、矩形、圆形、弧形、点聚合等。

功能界面友好统一,使用方便,只需一个类。

支持Js动态交互添加、删除、清空和重置点,无需刷新页面。

支持任何Qt版本,任何系统,任何编译器。

三、体验地址

经验地址:https://pan.baidu.com/s/1uQsDQO5E5crUBN2J-nPeLQ提取代码:1jkp文件名:bin_map.zip

国内网站:https://gitee.com/feiyangqingyun

国际网站:https://github.com/feiyangqingyun

个人主页:https://blog.csdn.net/feiyangqingyun

知乎主页:https://www.zhihu.com/people/feiyangqingyun/

四、效果图

Qt编译地图综合应用12路查询

五、相关代码

void mapbaidu : addroute(QStringList列表)

{

如果(!startAddr.isEmpty()) {

//地址标有,表示采用的纬度和经度。

if (startAddr.contains( ', '){

list QString(' var p1=新BMap。点(% 1); ')。arg(StartAddr);

list QString(' var p2=新BMap。点(% 1); ')。arg(EndAdr);

}其他{

列表QString( ' var P1= ' % 1 '; ')。arg(StartAddr);

列表QString( ' var p2= ' % 1 '; ')。arg(EndAdr);

}

//0-总线1-驱动2-步行3-乘坐

if (routeType==0) {

列表QString(' var transit=新BMap。TransitRoute(映射,{ renderOptions: { map:map,panel: ' result ' },policy :% 1 }); ')。arg(策略类型);

列表QString(' transit.search(p1,p2); ');

}否则如果(routeType==1) {

列表QString(' var driving=新BMap .行驶路线(地图,{ renderOptions: { map:map,panel: ' result ' },策略:% 1 }); ').arg(策略类型);

列表QString(' driving.search(p1,p2); ');

}否则如果(routeType==2) {

列表QString(' var walking=新BMap .步行路线(地图,{ renderOptions: { map:map,panel: ' result ' },策略:% 1 }); ').arg(策略类型);

列表QString( '步行。搜索(P1,p2); ');

}否则如果(routeType==3) {

列表QString(' var riding=新BMap .动态地图(地图,{ renderOptions: { map:map,panel: ' result ' },策略:% 1 }); ').arg(策略类型);

list QString(' riding.search(p1,p2); ');

}

}

}