百度地图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棱柱鼠标事件相关推荐

  1. 百度地图--3D棱柱效果---省边界数据抽取---Boundary、Point、Prism

    3D棱柱效果 上代码 var map = new BMapGL.Map("allmap");var point = new BMapGL.Point(116.404, 39.925 ...

  2. 百度地图 app 点击事件无效、不触发 解决方案

    百度地图 app 点击事件无效.不触发 解决方案 参考文章: (1)百度地图 app 点击事件无效.不触发 解决方案 (2)https://www.cnblogs.com/muzhe/articles ...

  3. 百度地图3D地球闪动点(修复不在视野内时无法隐藏marker的bug)

    一.效果图 二.详解 本质上为自定义Marker,使用css来做动画特效 有关通用模式相关操作,请看<百度地图3D地球接入> 1. 自定义CSS样式 ComplexCustomOverla ...

  4. 百度地图路线规划onchange事件触发两次 冲突解决

    var map = new BMap.Map("allmap",{enableMapClick:false});     map.centerAndZoom("福州市&q ...

  5. vue使用百度地图获取可视区域四角坐标(百度地图四角坐标,百度地图3D可视区域四角坐标)

    百度地图api只提供了左下角和右上角两个坐标,左上角坐标和右下角坐标需要自己操作获取,方法如下: 地图自带获取坐标的方法:var bounds = map.getBounds(); //获取地图可视区 ...

  6. centerandzoom 无效_百度地图 app 点击事件无效、不触发 解决方案

    参考 https://blog.csdn.net/Davis_Dxs/article/details/82425211 具体问题: 对 "地图" 添加 click 事件,在点击地图 ...

  7. 百度地图infowindow的close事件_百度地图蒙圈:车主要加油误导母婴店 跑偏理由令人啼笑皆非...

    常在江湖飘,哪有不挨刀.经常驾车出门在外的您,有过被导航坑的经历么?其实在早些年手机导航刚刚兴起的时候,这类现象确实比较常见,但是到了如今大数据的时代,手机导航数据更新比较及时,问题已经少了很多.不过 ...

  8. 百度地图infowindow的close事件_高德地图,百度地图,腾讯地图哪个更准?

    先说结论 高德第一,百度第二,腾讯第三 这些地图商,他们是怎么知道"我家门口新开了一家咖啡店"这一事件的,并且标注上去还拍了照片呢?有些店新开了,有些店倒闭了,10年以前这条街上的 ...

  9. 百度地图api点击事件及鼠标滚动缩放

    首先找百度拿到密钥http://lbsyun.baidu.com/index.php?title=jspopular/guide/getkey不解释, 把ip和密钥设置好 干货在此: <!DOC ...

  10. 百度地图3d效果和卫星图效果

    3D图 3d案例如上图 代码如下 <!DOCTYPE html> <html> <head><meta http-equiv="Content-Ty ...

最新文章

  1. p187让元素垂直居中
  2. UWP开发随笔——使用SQLite数据库
  3. 关于element-ui 中使用Notice组件(Message、MessageBox、Notification)所遇到的坑
  4. 重拾简单的linux指令之info 【转】
  5. 广告点击率预测 [离线部分]
  6. 【SAP】PO中“交货已完成”的功能解析
  7. ES6 Proxy的简单使用
  8. html:(22):认识css样式和css的优势
  9. 刚毕业就年薪30万,程序员真的这么有“钱”途吗?
  10. linux安装光盘制作工具,(三)Linux平台多操作系统安装盘制作工具
  11. 爬虫项目之爬取页面并按界面样式导入excel表格
  12. 基于命令行编译打包phonegap for android应用
  13. qt mysql驱动不能用了,Qt使用msvc编译MySQL驱动_MySQL
  14. 集成电路技术与产业发展
  15. 怎么计算机械设备使用费用,机械设备制造成本的核算方法.doc
  16. 台式机鼠标失灵打开计算机,终于懂了台式电脑鼠标键盘不能用怎么办了
  17. 批量将多张图片的宽度和高度同时缩小一半,也可以按固定比例缩小
  18. Word、PPT、Visio里面怎么插入latex mathcal的数学字符?
  19. 导出iphone手机安装包的几种方法
  20. 互联网的应用拓展——物联网

热门文章

  1. 倪凯:市场回归理性,限定场景自动驾驶未来五年迎来爆发期 | 自动驾驶这十年...
  2. Gee Fusion数据处理build环节的解读
  3. 2.4 是否同一棵二叉搜索树(树,c)
  4. 中国计算机科学南开分数线,南开大学计算机科学与技术考研历年分数线报录比及导师信息.pdf...
  5. 百年病态集论的症结:几百年将两异直线段误为同一线段
  6. 白糖期货上涨可能带动的股票
  7. html字距能控制,如何通过CSS来控制HTML中字符的间距? p标签有没有控制字行间距的...
  8. CDH6.3.0 报错汇总
  9. python进阶-----十九课(下)--继承
  10. 基于Agera的EventBus实现库