## 五、相关代码 ```cpp void MapBaiDu::getPoints(QStringList &list) { //通用多个点坐标转换成 BMap.Point 对象 //坐标格式 121.414,31.1828|121.414,31.1838|121.416,31.1838 list << QString(" function getPoints(points) {"); list << QString(" var pts = []"); list << QString(" var listPoint = points.split('|');"); list << QString(" var len = listPoint.length"); list << QString(" for (var i = 0; i < len; i++) {"); list << QString(" var list = listPoint.split(',');"); list << QString(" var pot = new BMap.Point(list[0], list[1]);"); list << QString(" pts.push(pot);"); list << QString(" }"); list << QString(" return pts;"); list << QString(" }"); }
void MapBaiDu::getMarkers(QStringList &list) { //通用多个点坐标转换成 BMap.Marker 对象 //坐标格式 121.414,31.1828|121.414,31.1838|121.416,31.1838 list << QString(" function getMarkers(points) {"); list << QString(" var markers = []"); list << QString(" var listPoint = points.split('|');"); list << QString(" var len = listPoint.length"); list << QString(" for (var i = 0; i < len; i++) {"); list << QString(" var list = listPoint.split(',');"); list << QString(" var pot = new BMap.Point(list[0], list[1]);"); list << QString(" var marker = new BMap.Marker(pot);"); list << QString(" markers.push(marker);"); list << QString(" }"); list << QString(" return markers;"); list << QString(" }"); }
void MapBaiDu::getBounds(QStringList &list) { //获取可视区域经纬度 bssw=左下角 bsne=右上角 bsce=中心 list << QString(" function getBounds() {"); list << QString(" var bs = map.getBounds();"); list << QString(" var bssw = bs.getSouthWest();"); list << QString(" var bsne = bs.getNorthEast();"); list << QString(" var bsce = bs.getCenter();"); list << QString(" var rect = bssw.lng + ',' + bssw.lat + ',' + bsne.lng + ',' + bsne.lat + ',' + bsce.lng + ',' + bsce.lat + ',' + map.getZoom();"); //信号发出去 list << QString(" receiveData('bounds', rect);"); list << QString(" }"); }
void MapBaiDu::getBoundary(QStringList &list) { //获取边界点集合 list << QString(" function getBoundary() {"); list << QString(" for (var i = 0; i < polygons.length; i++) {"); list << QString(" var polyline = polygons;"); list << QString(" var pts = polyline.getPath();"); list << QString(" var result = '';"); list << QString(" for (var j = 0; j < pts.length; j++) {"); list << QString(" result += pts[j].lng + ',' + pts[j].lat + ';';"); list << QString(" }"); list << QString(" receiveData('newboundary', result);"); list << QString(" }"); list << QString(" }"); }
void MapBaiDu::getZoom(QStringList &list) { //获取当前地图缩放级别 list << QString(" function getZoom() {"); list << QString(" var zoom = map.getZoom();"); list << QString(" receiveData('zoom', zoom);"); list << QString(" }"); }
void MapBaiDu::addMarkerClusterer(QStringList &list) { //动态添加点聚合 list << QString(" function addMarkerClusterer(points) {"); list << QString(" var markers = getMarkers(points);"); //最简单的用法,生成一个marker数组,然后调用markerClusterer类即可 list << QString(" var markerClusterer = new BMapLib.MarkerClusterer(map, {markers:markers});"); list << QString(" }"); } ```