百度地图3D棱柱鼠标事件

这篇具有很好参考价值的文章主要介绍了百度地图3D棱柱鼠标事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

百度地图2D API  JavaScript API | 百度地图API SDK

百度地图3D API  jspopularGL | 百度地图API SDK

3D棱柱效果如下

百度地图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() 去获取了北京市的行政边界

百度地图3D棱柱鼠标事件,前端,百度

获取到是这个样子的 

所以要处理一下 spilt(";") 通过分号处理成另外一个数组

 百度地图3D棱柱鼠标事件,前端,百度

长这个样子 

我们平常通过后端获取到的点位格式大概是 [{lat:114, lng: 30}, {lat:114, lng: 30}] 这样的,我们将其循环 new BMapGL.Point(lng, lat) 添加到地图点位当中 然后 push 到一个数组里 储存起来

例如  path.push(new BMapGL.Point(lng, lat));

打印一下 path

百度地图3D棱柱鼠标事件,前端,百度

下方就可以直接把这个 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棱柱鼠标事件,前端,百度文章来源地址https://www.toymoban.com/news/detail-701564.html

到了这里,关于百度地图3D棱柱鼠标事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始学习调用百度地图网页API:三、鼠标点击绘图功能

    注:需要将 你的ak 替换,ak从百度地图官网注册申请,选择浏览器类型api。 绘制线段 显示对象的位置信息 显示任意点坐标 最初的实现方法,在 显示坐标 按钮多次被点击后,会导致再点击 不显示 按钮,无法remove事件。依然会在地图上点击后出现坐标信息。 这是因为addEve

    2024年02月07日
    浏览(28)
  • vue项目引入百度地图BMapGL鼠标绘制和BMap辅助工具

    目录 引言 1、引用百度地图 2、在项目中使用百度地图 2-1、页面结构部分 2-2、js逻辑部分 3-1、页面结构部分 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它旨在平易近人、灵活且可扩展,重点是声明式渲染和基于组件的架构。Vue 的反应性和可组合性使其成为开发复

    2024年01月16日
    浏览(29)
  • VUE百度地图加载3D模型(MapVThreeGallery)

    参考百度开发文档 补充下(里面有免费的可以拿来玩)3D模型下载网址 步骤 1: npm install mapv-three 安装插件 2:在index.html加载百度地图 注:加载model.glb文件需要是请求服务器来的,没有服务器资源的可以像我一样在本地用VS插件(Live Server)起了个小型服务器放3D模型数据 ----使用

    2024年02月11日
    浏览(34)
  • 解决百度地图的父元素出现滚轮之后启用鼠标缩放模式之后出现偏移的现象

    最近在做项目的时候,有个功能是点击详情按钮的时候在一个弹框里展现出来列表的详情 因为详情弹框里面的数据有其他的表格数据,然后在弹框的下边使用百度地图展示后端发送过来的坐标点,然后把坐标点转换之后使用百度地图的方法制作覆盖物上去。这里边就出现了一

    2024年03月18日
    浏览(32)
  • vue+openlayers,初始化openlayers地图,实现鼠标移入、点击、右键等事件

    主要功能:初始化openlayers地图,实现鼠标移入、点击、右键等事件,以及获取当前图标的feature,将当前图标信息以弹框方式进行展示;地图上展示拾取到的经纬度 前端使用的是vue技术栈 步骤一:将地图的公用配置项单独提出成一个js文件,方便打包后进行修改,代码如下

    2024年02月11日
    浏览(27)
  • vue html 百度地图3D楼 建筑物上颜色 修改颜色

    先看效果图: 引入GL版 JS部分: 用mapvgl.ShapeLayer给3D楼上颜色,实际上就是创建一个3D物体 覆盖原来的物体 coordinates参数为多边形物体的经纬度,比如: 这个建筑, 6个经纬度 按顺序 链接成一个图形,再设置图形的高度 就完成了

    2024年02月16日
    浏览(33)
  • echarts地图,选中颜色设置;取消鼠标默认事件,点击选中地图实现颜色变化,选择高亮,选中高亮,取消选中(再次点击取消选中),以下面地图为例

    echarts地图,选中颜色设置;取消鼠标默认事件,点击选中地图实现颜色变化,选择高亮,选中高亮,取消选中(再次点击取消选中),下面以四川部分地图为例 针对选择模式,非点击(click),选择事件,可以获取相关地图数据,使用echarts地图的事件方法 mapselectchanged

    2024年02月11日
    浏览(38)
  • 【前端】vue实现鼠标移入移出事件+解决鼠标事件没有反应

    鼠标移入移出事件代码 methods 这样一个简单的鼠标移入移出事件就完成了。 但是,我在我的标签中加上鼠标移出移入事件过后,并没有什么反应,在查阅了官方文档之后,才发现了加一个属性有可能就能解决这个问题:   即添加native属性即可解决:

    2024年02月07日
    浏览(31)
  • vue+echarts 实现地图tooltip点击事件;toolTip数据动态渲染;同时鼠标滑过涟漪点时实现地图多区域联动

    最终做出来的效果是这样的: 最近做项目时,遇到这样的需求:         1、toolTip上的数据根据后台动态渲染         2、鼠标移入地图涟漪点时显示tootTip,点击toolTip上的文字,携带动态数据id进行路由跳转         3、鼠标移入地图涟漪点,与涟漪点相关的省份多区域联动

    2024年02月09日
    浏览(44)
  • 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址

    快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下:     代码如下: # 百度地图定位组件,显示地图定位,标记点,并显示详细地址 #### 使用方法 ```使用方法 #安装vue-baidu-map插件

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包