百度地图3D棱柱鼠标事件
百度地图2D API JavaScript API | 百度地图API SDK
百度地图3D API jspopularGL | 百度地图API SDK
3D棱柱效果如下
一. 渲染地图
var map = new BMapGL.Map('container', {style: {styleJson: styleJson2}
})
map.centerAndZoom(new BMapGL.Point(116.404, 39.925), 9);
map.enableScrollWheelZoom(true);
map.setTilt(50);
这块加了一个地图样式 是从百度地图 API 上扣的
<script src="http://bj.bcebos.com/v1/mapopen/api-demos/js/mapStyle.js"></script>
二. 获取行政边界点位 并添加鼠标点击事件
var bd1 = new BMapGL.Boundary();
bd1.get('北京市', function (rs) {let count = rs.boundaries.length;for (let i = 0; i < count; i++) {let path = [];let str = rs.boundaries[i].replace(' ', '');let points = str.split(';');for (let j = 0; j < points.length; j++) {let lng = points[j].split(',')[0];let lat = points[j].split(',')[1];path.push(new BMapGL.Point(lng, lat));}// 将所有点位坐标添加到一个数组里面 然后下方代码 将棱柱渲染出来let prism = new BMapGL.Prism(path, 5000, {topFillColor: '#5679ea',topFillOpacity: 0.6,sideFillColor: '#5679ea',sideFillOpacity: 0.9});map.addOverlay(prism);// 绑定鼠标事件var events = ['click', 'mouseover', 'mouseout'];for (let i = 0; i < events.length; i++) {prism.addEventListener(events[i], e => {switch (events[i]) {case 'click':alert('北京市');break;case 'mouseover':e.target.setTopFillColor('#475fab');e.target.setTopFillOpacity(1);break;case 'mouseout':e.target.setTopFillColor('#5679ea');e.target.setTopFillOpacity(0.5);break;}});}}
});
首先 调用了百度地图获取市级行政边界的方法 Boundary() 去获取了北京市的行政边界
获取到是这个样子的
所以要处理一下 spilt(";") 通过分号处理成另外一个数组
长这个样子
我们平常通过后端获取到的点位格式大概是 [{lat:114, lng: 30}, {lat:114, lng: 30}] 这样的,我们将其循环 new BMapGL.Point(lng, lat) 添加到地图点位当中 然后 push 到一个数组里 储存起来
例如 path.push(new BMapGL.Point(lng, lat));
打印一下 path
下方就可以直接把这个 path 里的点位渲染成3D棱柱图了
let prism = new BMapGL.Prism(path, 5000, {topFillColor: '#5679ea',topFillOpacity: 0.6,sideFillColor: '#5679ea',sideFillOpacity: 0.9
});
map.addOverlay(prism);
鼠标事件
// 绑定鼠标事件
var events = ['click', 'mouseover', 'mouseout'];
for (let i = 0; i < events.length; i++) {prism.addEventListener(events[i], e => {switch (events[i]) {case 'click':alert('北京市');break;case 'mouseover':e.target.setTopFillColor('#475fab');e.target.setTopFillOpacity(1);break;case 'mouseout':e.target.setTopFillColor('#5679ea');e.target.setTopFillOpacity(0.5);break;}});
}
如果只需要点击事件
prism.addEventListener('click', e => {alert('北京市');
});
百度地图3D棱柱鼠标事件相关推荐
- 百度地图--3D棱柱效果---省边界数据抽取---Boundary、Point、Prism
3D棱柱效果 上代码 var map = new BMapGL.Map("allmap");var point = new BMapGL.Point(116.404, 39.925 ...
- 百度地图 app 点击事件无效、不触发 解决方案
百度地图 app 点击事件无效.不触发 解决方案 参考文章: (1)百度地图 app 点击事件无效.不触发 解决方案 (2)https://www.cnblogs.com/muzhe/articles ...
- 百度地图3D地球闪动点(修复不在视野内时无法隐藏marker的bug)
一.效果图 二.详解 本质上为自定义Marker,使用css来做动画特效 有关通用模式相关操作,请看<百度地图3D地球接入> 1. 自定义CSS样式 ComplexCustomOverla ...
- 百度地图路线规划onchange事件触发两次 冲突解决
var map = new BMap.Map("allmap",{enableMapClick:false}); map.centerAndZoom("福州市&q ...
- vue使用百度地图获取可视区域四角坐标(百度地图四角坐标,百度地图3D可视区域四角坐标)
百度地图api只提供了左下角和右上角两个坐标,左上角坐标和右下角坐标需要自己操作获取,方法如下: 地图自带获取坐标的方法:var bounds = map.getBounds(); //获取地图可视区 ...
- centerandzoom 无效_百度地图 app 点击事件无效、不触发 解决方案
参考 https://blog.csdn.net/Davis_Dxs/article/details/82425211 具体问题: 对 "地图" 添加 click 事件,在点击地图 ...
- 百度地图infowindow的close事件_百度地图蒙圈:车主要加油误导母婴店 跑偏理由令人啼笑皆非...
常在江湖飘,哪有不挨刀.经常驾车出门在外的您,有过被导航坑的经历么?其实在早些年手机导航刚刚兴起的时候,这类现象确实比较常见,但是到了如今大数据的时代,手机导航数据更新比较及时,问题已经少了很多.不过 ...
- 百度地图infowindow的close事件_高德地图,百度地图,腾讯地图哪个更准?
先说结论 高德第一,百度第二,腾讯第三 这些地图商,他们是怎么知道"我家门口新开了一家咖啡店"这一事件的,并且标注上去还拍了照片呢?有些店新开了,有些店倒闭了,10年以前这条街上的 ...
- 百度地图api点击事件及鼠标滚动缩放
首先找百度拿到密钥http://lbsyun.baidu.com/index.php?title=jspopular/guide/getkey不解释, 把ip和密钥设置好 干货在此: <!DOC ...
- 百度地图3d效果和卫星图效果
3D图 3d案例如上图 代码如下 <!DOCTYPE html> <html> <head><meta http-equiv="Content-Ty ...
最新文章
- p187让元素垂直居中
- UWP开发随笔——使用SQLite数据库
- 关于element-ui 中使用Notice组件(Message、MessageBox、Notification)所遇到的坑
- 重拾简单的linux指令之info 【转】
- 广告点击率预测 [离线部分]
- 【SAP】PO中“交货已完成”的功能解析
- ES6 Proxy的简单使用
- html:(22):认识css样式和css的优势
- 刚毕业就年薪30万,程序员真的这么有“钱”途吗?
- linux安装光盘制作工具,(三)Linux平台多操作系统安装盘制作工具
- 爬虫项目之爬取页面并按界面样式导入excel表格
- 基于命令行编译打包phonegap for android应用
- qt mysql驱动不能用了,Qt使用msvc编译MySQL驱动_MySQL
- 集成电路技术与产业发展
- 怎么计算机械设备使用费用,机械设备制造成本的核算方法.doc
- 台式机鼠标失灵打开计算机,终于懂了台式电脑鼠标键盘不能用怎么办了
- 批量将多张图片的宽度和高度同时缩小一半,也可以按固定比例缩小
- Word、PPT、Visio里面怎么插入latex mathcal的数学字符?
- 导出iphone手机安装包的几种方法
- 互联网的应用拓展——物联网
热门文章
- 倪凯:市场回归理性,限定场景自动驾驶未来五年迎来爆发期 | 自动驾驶这十年...
- Gee Fusion数据处理build环节的解读
- 2.4 是否同一棵二叉搜索树(树,c)
- 中国计算机科学南开分数线,南开大学计算机科学与技术考研历年分数线报录比及导师信息.pdf...
- 百年病态集论的症结:几百年将两异直线段误为同一线段
- 白糖期货上涨可能带动的股票
- html字距能控制,如何通过CSS来控制HTML中字符的间距? p标签有没有控制字行间距的...
- CDH6.3.0 报错汇总
- python进阶-----十九课(下)--继承
- 基于Agera的EventBus实现库