bt365体育投注.主頁欢迎您!!

    <acronym id="zvmrr"></acronym>
    <td id="zvmrr"></td>
  • <tr id="zvmrr"><label id="zvmrr"></label></tr>
  • <acronym id="zvmrr"></acronym>
  • 腾讯位置服务

    腾讯位置服务 查看完整档案

    北京编辑  |  填写毕业院校腾讯科技(北京)有限公司  |  腾讯位置服务 编辑 lbs.qq.com 编辑
    编辑

    立足生态,连接未来

    个人动态

    腾讯位置服务 发布了文章 · 12月4日

    腾讯位置服务地图SDK自定义路况和字体

    使用场景

    自定义路况是用于帮助修改路况的颜色和宽度,因为地图内部字体统一的,如果想要修改样式就可以通过相关文字接口进行定义

    核心类和接口

    接口说明
    TrafficStylesetCongestedStrokeColor设置路况拥堵的描边颜色
    setSeriousCongestedColor设置路况极度拥堵的颜色
    setSeriousCongestedStrokeColor设置路况极度拥堵的描边颜色
    setSlowColor设置路况慢行的颜色
    setSlowStrokeColor设置路况缓行的描边颜色
    setSmoothColor设置路况畅通的颜色
    setSmoothStrokeColor设置路况畅通描边的颜色
    setStrokeWidth设置路况描边颜色的宽度
    setWidth设置路况填充颜色的宽度
    TencentMapOptionssetTrafficStyle设置路况样式
    setTypeface设置自定义字体

    核心点讲解

    一、设置自定义路况

    1、 初始化TrafficStyle并配置相关属性

    TrafficStyle trafficStyle = new TrafficStyle();
            //设置路况极度拥堵的颜色
            trafficStyle.setSeriousCongestedColor(0xff92000a);
            //设置路况拥堵的颜色
            trafficStyle.setCongestedColor(0xffea0312);
            //设置路况慢行的颜色
            trafficStyle.setSlowColor(0xffff7508);
            //设置路况畅通的颜色
            trafficStyle.setSmoothColor(0xff00a209);
            //设置路况填充颜色的宽度
            trafficStyle.setWidth(10);

    2、把TrafficStyle赋值到TencentMapOptions上

    TencentMapOptions tencentMapOptions = new TencentMapOptions();
            tencentMapOptions.setTrafficStyle(trafficStyle);

    3、显示到地图上

    MapView mapView = new MapView(getApplicationContext(), tencentMapOptions);

    二、设置自定义字体

    1、修改文字样式

    tencentMapOptions.setTypeface(Typeface.DEFAULT_BOLD);

    实现效果

    路况

    文字

    注意

    1、需要在地图初始化的时候传入,初始化以后就无法更改了

    2、自定义完路况后需要开启路况,因为地图默认是不开启的

    作者:CT_YJ

    链接:https://my.oschina.net/u/4860...

    来源:OSCHINA

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 3 收藏 3 评论 0

    腾讯位置服务 收藏了文章 · 12月1日

    腾讯地图SDK自定义地图和路况示例

    前言

    1、自定义路况

    • 地图SDK一般的路况颜色都是相同的,如道路畅通为绿色、道路缓慢为黄色、道路拥堵为红色,但是通常都无法让用户自定义路况颜色。腾讯地图iOS SDK在4.3.9.1版本提供了自定义路况颜色功能,可以自定义路况的畅通拥堵颜色。

    2、自定义地图

    • 腾讯地图SDK在提供了基础配色的情况下,还支持自定义颜色,可以将如绿地、道路、河流等元素修改为自己指定的颜色,实现了高度自定义。

    使用场景

    1、自定义道路路况颜色

    2、自定义地图元素颜色

    准备

    1、腾讯地图iOS SDK

    2、腾讯地图控制台自定义地图样式

    接入流程

    1、自定义路况:

    1)、创建QMapView时添加配置:

    • 通常创建地图对象时直接使用的initWithFrame:方法,而QMapView还提供了另一个可以添加配置的方法
    // QMapConfig提供了一个初始化方法,这个方法可以用于设置一个辅助Key
    // - (instancetype)initWithSubID:(NSString *)subID subKey:(NSString *)subKey;
    QMapConfig *config = [[QMapConfig alloc] init];
    QMapView *mapView = [[QMapView alloc] initWithFrame:self.view.bounds config]:

    2)、创建路况样式对象,并设置路况颜色:

    QMapConfig *config = [[QMapConfig alloc] init];
    QTrafficStyle *style = [[QTrafficStyle alloc] init];
    
    // 统一描边颜色
    UIColor *whiteColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:255/255.0 alpha:1];
    
    // 交通顺畅颜色:青绿色
    style.smoothColor = [UIColor colorWithRed:138/255.0 green:217/255.0 blue:28/255.0 alpha:1];
    // 交通顺畅描边颜色
    style.smoothBorderColor = whiteColor;
    
    // 交通缓慢颜色:黄色
    style.slowColor = [UIColor colorWithRed:244/255.0 green:247/255.0 blue:89/255.0 alpha:1];
    // 交通缓慢描边颜色
    style.slowBorderColor = whiteColor;
    
    // 交通拥堵配色:橘色
    style.congestedColor = [UIColor colorWithRed:250/255.0 green:154/255.0 blue:0 alpha:1];
    style.congestedBorderColor = whiteColor;
    
    // 交通非常拥堵颜色:红色
    style.seriouseCongestedColor = [UIColor colorWithRed:255/255.0 green:0 blue:0 alpha:1];
    // 交通非常拥堵描边颜色
    style.seriouseCongestedBorderColor = whiteColor;
    
    // 路况线宽
    style.lineWidth = 2;
    config.trafficStyle = style;

    3)、图片示例(西直门经典拥堵路段)

    2、自定义地图样式

    1)、首先,登录到腾讯地图管理控制台,然后进入个性化地图里面,随便找一个模板,选择编辑样式:

    2)、左边的侧边栏显示的是地图中可以去自定义的颜色:

    • 修改前

    • 修改后

    3、在iOS端套用自定义样式模板

    • 在控制台将保存好的模板添加到对应的Key中,这里我将其放在了第三个栏位,在初始化QMapView地图实例之后,只需要调用接口就可以切换样式了:[mapView setMapStyle:3];

    • 图片示例

    注意

    目前自定义路况只支持一次性的配置,不能动态修改,我们后续会多多完善的。

    作者:面糊

    链接:https://www.jianshu.com/p/fa2...

    来源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    腾讯位置服务 赞了文章 · 12月1日

    腾讯地图SDK自定义地图和路况示例

    前言

    1、自定义路况

    • 地图SDK一般的路况颜色都是相同的,如道路畅通为绿色、道路缓慢为黄色、道路拥堵为红色,但是通常都无法让用户自定义路况颜色。腾讯地图iOS SDK在4.3.9.1版本提供了自定义路况颜色功能,可以自定义路况的畅通拥堵颜色。

    2、自定义地图

    • 腾讯地图SDK在提供了基础配色的情况下,还支持自定义颜色,可以将如绿地、道路、河流等元素修改为自己指定的颜色,实现了高度自定义。

    使用场景

    1、自定义道路路况颜色

    2、自定义地图元素颜色

    准备

    1、腾讯地图iOS SDK

    2、腾讯地图控制台自定义地图样式

    接入流程

    1、自定义路况:

    1)、创建QMapView时添加配置:

    • 通常创建地图对象时直接使用的initWithFrame:方法,而QMapView还提供了另一个可以添加配置的方法
    // QMapConfig提供了一个初始化方法,这个方法可以用于设置一个辅助Key
    // - (instancetype)initWithSubID:(NSString *)subID subKey:(NSString *)subKey;
    QMapConfig *config = [[QMapConfig alloc] init];
    QMapView *mapView = [[QMapView alloc] initWithFrame:self.view.bounds config]:

    2)、创建路况样式对象,并设置路况颜色:

    QMapConfig *config = [[QMapConfig alloc] init];
    QTrafficStyle *style = [[QTrafficStyle alloc] init];
    
    // 统一描边颜色
    UIColor *whiteColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:255/255.0 alpha:1];
    
    // 交通顺畅颜色:青绿色
    style.smoothColor = [UIColor colorWithRed:138/255.0 green:217/255.0 blue:28/255.0 alpha:1];
    // 交通顺畅描边颜色
    style.smoothBorderColor = whiteColor;
    
    // 交通缓慢颜色:黄色
    style.slowColor = [UIColor colorWithRed:244/255.0 green:247/255.0 blue:89/255.0 alpha:1];
    // 交通缓慢描边颜色
    style.slowBorderColor = whiteColor;
    
    // 交通拥堵配色:橘色
    style.congestedColor = [UIColor colorWithRed:250/255.0 green:154/255.0 blue:0 alpha:1];
    style.congestedBorderColor = whiteColor;
    
    // 交通非常拥堵颜色:红色
    style.seriouseCongestedColor = [UIColor colorWithRed:255/255.0 green:0 blue:0 alpha:1];
    // 交通非常拥堵描边颜色
    style.seriouseCongestedBorderColor = whiteColor;
    
    // 路况线宽
    style.lineWidth = 2;
    config.trafficStyle = style;

    3)、图片示例(西直门经典拥堵路段)

    2、自定义地图样式

    1)、首先,登录到腾讯地图管理控制台,然后进入个性化地图里面,随便找一个模板,选择编辑样式:

    2)、左边的侧边栏显示的是地图中可以去自定义的颜色:

    • 修改前

    • 修改后

    3、在iOS端套用自定义样式模板

    • 在控制台将保存好的模板添加到对应的Key中,这里我将其放在了第三个栏位,在初始化QMapView地图实例之后,只需要调用接口就可以切换样式了:[mapView setMapStyle:3];

    • 图片示例

    注意

    目前自定义路况只支持一次性的配置,不能动态修改,我们后续会多多完善的。

    作者:面糊

    链接:https://www.jianshu.com/p/fa2...

    来源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 1 收藏 1 评论 0

    腾讯位置服务 发布了文章 · 11月27日

    腾讯位置服务地图SDK自定义地图和路况

    前言

    1、自定义路况

    • 地图SDK一般的路况颜色都是相同的,如道路畅通为绿色、道路缓慢为黄色、道路拥堵为红色,但是通常都无法让用户自定义路况颜色。腾讯地图iOS SDK在4.3.9.1版本提供了自定义路况颜色功能,可以自定义路况的畅通拥堵颜色。

    2、自定义地图

    • 腾讯地图SDK在提供了基础配色的情况下,还支持自定义颜色,可以将如绿地、道路、河流等元素修改为自己指定的颜色,实现了高度自定义。

    使用场景

    1、自定义道路路况颜色

    2、自定义地图元素颜色

    准备

    1、腾讯地图iOS SDK

    2、腾讯地图控制台自定义地图样式

    接入流程

    1、自定义路况:

    1)、创建QMapView时添加配置:

    • 通常创建地图对象时直接使用的initWithFrame:方法,而QMapView还提供了另一个可以添加配置的方法
    // QMapConfig提供了一个初始化方法,这个方法可以用于设置一个辅助Key
    // - (instancetype)initWithSubID:(NSString *)subID subKey:(NSString *)subKey;
    QMapConfig *config = [[QMapConfig alloc] init];
    QMapView *mapView = [[QMapView alloc] initWithFrame:self.view.bounds config]:

    2)、创建路况样式对象,并设置路况颜色:

    QMapConfig *config = [[QMapConfig alloc] init];
    QTrafficStyle *style = [[QTrafficStyle alloc] init];
    
    // 统一描边颜色
    UIColor *whiteColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:255/255.0 alpha:1];
    
    // 交通顺畅颜色:青绿色
    style.smoothColor = [UIColor colorWithRed:138/255.0 green:217/255.0 blue:28/255.0 alpha:1];
    // 交通顺畅描边颜色
    style.smoothBorderColor = whiteColor;
    
    // 交通缓慢颜色:黄色
    style.slowColor = [UIColor colorWithRed:244/255.0 green:247/255.0 blue:89/255.0 alpha:1];
    // 交通缓慢描边颜色
    style.slowBorderColor = whiteColor;
    
    // 交通拥堵配色:橘色
    style.congestedColor = [UIColor colorWithRed:250/255.0 green:154/255.0 blue:0 alpha:1];
    style.congestedBorderColor = whiteColor;
    
    // 交通非常拥堵颜色:红色
    style.seriouseCongestedColor = [UIColor colorWithRed:255/255.0 green:0 blue:0 alpha:1];
    // 交通非常拥堵描边颜色
    style.seriouseCongestedBorderColor = whiteColor;
    
    // 路况线宽
    style.lineWidth = 2;
    config.trafficStyle = style;

    3)、图片示例(西直门经典拥堵路段)

    2、自定义地图样式

    1)、首先,登录到腾讯地图管理控制台,然后进入个性化地图里面,随便找一个模板,选择编辑样式:

    2)、左边的侧边栏显示的是地图中可以去自定义的颜色:

    • 修改前

    • 修改后

    3、在iOS端套用自定义样式模板

    • 在控制台将保存好的模板添加到对应的Key中,这里我将其放在了第三个栏位,在初始化QMapView地图实例之后,只需要调用接口就可以切换样式了:[mapView setMapStyle:3];

    • 图片示例

    注意

    目前自定义路况只支持一次性的配置,不能动态修改,我们后续会多多完善的。

    作者:面糊

    链接:https://www.jianshu.com/p/fa2...

    来源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 1 收藏 1 评论 0

    腾讯位置服务 收藏了文章 · 11月24日

    手把手教你实现3D地图的定时高亮和点击事件

    技术选型

    文章所选技术栈:vue、echarts、echarts-gl

    安装Vue和echarts

    1、安装echarts和echarts-al

    npm i echarts --save npm i echarts-gl --save

    2、引用echarts和echarts-gl

    import echarts from 'echarts';
    import 'echarts-gl'
    
    Vue.prototype.$echarts = echarts

    3、页面引入

    require('../../node_modules/echarts/map/js/china')

    此时地图消息就在你的node_modules/echarts/map/china中

    初始化echarts-gl 3D地图

    1、新建一个option.js 这个文件是用来放配置项的,不建立也可以,但是页面代码多会不不美观

    2、配置页代码如下 (主要是地点标识和3D地图的颜色样式)

    //标识数据,用来标识地图上的点,给用户提供点击事件
    var geoCoordMap = {
        '黑龙江': [127.9688, 45.368],
        '内蒙古': [110.3467, 41.4899],
        "吉林": [125.8154, 44.2584],
        '北京市': [116.4551, 40.2539],
        "辽宁": [123.1238, 42.1216],
        "河北": [114.4995, 38.1006],
        "天津": [117.4219, 39.4189],
        "山西": [112.3352, 37.9413],
        "陕西": [109.1162, 34.2004],
        "甘肃": [103.5901, 36.3043],
        "宁夏": [106.3586, 38.1775],
        "青海": [101.4038, 36.8207],
        "新疆": [87.9236, 43.5883],
        "西藏": [91.11, 29.97],
        "四川": [103.9526, 30.7617],
        "重庆": [108.384366, 30.439702],
        "山东": [117.1582, 36.8701],
        "河南": [113.4668, 34.6234],
        "江苏": [118.8062, 31.9208],
        "安徽": [117.29, 32.0581],
        "湖北": [114.3896, 30.6628],
        "浙江": [119.5313, 29.8773],
        "福建": [119.4543, 25.9222],
        "江西": [116.0046, 28.6633],
        "湖南": [113.0823, 28.2568],
        "贵州": [106.6992, 26.7682],
        "云南": [102.9199, 25.4663],
        "广东": [113.12244, 23.009505],
        "广西": [108.479, 23.1152],
        "海南": [110.3893, 19.8516],
        '上海': [121.4648, 31.2891]
    
    };
    var chinaDatas = [
        [{
            name: '黑龙江',
            value: 100
        }],
        [{
            name: '内蒙古',
            value: 300
        }],
        [{
            name: '吉林',
            value: 300
        }],
        [{
            name: '辽宁',
            value: 300
        }],
        [{
            name: '河北',
            value: 300
        }],
        [{
            name: '天津',
            value: 300
        }],
        [{
            name: '山西',
            value: 300
        }],
        [{
            name: '陕西',
            value: 300
        }],
        [{
            name: '甘肃',
            value: 300
        }],
        [{
            name: '宁夏',
            value: 300
        }],
        [{
            name: '青海',
            value: 300
        }],
        [{
            name: '新疆',
            value: 300
        }],
        [{
            name: '西藏',
            value: 300
        }],
        [{
            name: '四川',
            value: 300
        }],
        [{
            name: '重庆',
            value: 300
        }],
        [{
            name: '山东',
            value: 300
        }],
        [{
            name: '河南',
            value: 300
        }],
        [{
            name: '江苏',
            value: 300
        }],
        [{
            name: '安徽',
            value: 300
        }],
        [{
            name: '湖北',
            value: 300
        }],
        [{
            name: '浙江',
            value: 300
        }],
        [{
            name: '福建',
            value: 300
        }],
        [{
            name: '江西',
            value: 300
        }],
        [{
            name: '湖南',
            value: 300
        }],
        [{
            name: '贵州',
            value: 300
        }],
        [{
            name: '广西',
            value: 300
        }],
        [{
            name: '海南',
            value: 300
        }],
        [{
            name: '上海',
            value: 1300
        }]
    ];
    
    //处理数据,是的数据格式符合echarts
    var convertData = function(data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i][0].name];
            if (geoCoord) {
                res.push({
                    name: data[i][0].name,
                    value: geoCoord.concat(data[i][0].value)
                });
            }
        }
        return res;
    };
    
    //具体配置,并输出
    
    export default {
        backgroundColor: '#fff',
        geo3D: {
            data: convertData(chinaDatas),
            map: 'china',
            color: '#fff',
            roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。
            itemStyle: {
                areaColor: 'rgba(255,255,255,1)',
                opacity: 1,
                borderWidth: 1,
                borderColor: '#000'
            }, //地图上每个省的颜色配置
            label: {
                show: false,
            },// 标特是否显示,显示配置
            
            emphasis: { //当鼠标放上去的状态
                label: {
                    show: true
                },
                itemStyle: {
                    color: '#000'
                }
            },
            
            tooltip: 'axis', //提示框设置
            
            formatter: val => {
                return val
            },
            /** 标签内容格式器,支持字符串模板和
            回调函数两种形式,字符串模板与回调函数
            返回的字符串均支持用 \n 换行。**/
            
            // legendHoverLink: true,
            
            regions: [{
                name: '山东',
                itemStyle: {
                    color: '#000',
                    opacity: 1,
                },
                label: {
                    show: true
                },
            }],//默认高亮区域
        },
        series: [{
            name: 'light',
            type: 'scatter3D', //标识点
            symbol: 'pin',  //散点的形状。默认为圆形。
            coordinateSystem: 'geo3D',
            data: convertData(chinaDatas),
            symbolSize: function() {
                return 36
            },
            label: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#f00'
                }
            },
            zlevel: 6,
            emphasis: { //当鼠标放上去  地区区域是否显示名称
                label: {
                    show: false
                },
                itemStyle: {
                    color: '#000'
                }
            },
        },
    
        ]
    };

    3、引入option

    import option from '你的option地址'

    4、创建 div

    <div id="myChart" style="height: 1000px; width: 1000px;"></div>

    5、初始化

    var myChart = this.$echarts.init(document.getElementById('myChart'));

    6、加载配置项

    myChart.setOption(option);

    7、效果图展示,颜色可以自己配置

    增加定时高亮事件和点击事件

    1、定时器代码(如何高亮关键就是改变geo的regions的name属性)

    let regions = setInterval(function() {
        option.geo3D.regions[0].name = option.geo3D.data[count].name
        myChart.setOption(option);
        count ++
        if (count === option.geo3D.data.length) {
            count = 0
        }
    }, 1000);

    2、点击事件

    myChart.on('click',function(params){
        clearInterval(regions)
        console.log(params)
        count = params.dataIndex
        option.geo3D.regions[0].name = params.name
        myChart.setOption(option);
    });

    3、双击重新开始定时器事件

    myChart.getZr().on('dblclick', function(params) {
        regions = setInterval(function() {
            option.geo3D.regions[0].name = option.geo3D.data[count].name
            console.log(count)
            myChart.setOption(option);
            count ++
            if (count === option.geo3D.data.length) {
                count = 0
            }
        }, 1000);
    });

    4、其实要是在2D上可以用

    myChart.dispatchAction({
        type: 'highlight',
        // 可选,系列 index,可以是一个数组指定多个系列
        seriesIndex?: number|Array,
        // 可选,系列名称,可以是一个数组指定多个系列
        seriesName?: string|Array,
        // 可选,数据的 index
        dataIndex?: number,
        // 可选,数据的 名称
        name?: string
    })

    这个事件,很遗憾的是3D并不支持这些api

    特别注意

    • 点击事件(click)

    它只能使用getZr()来搞点击,而且返回的信息只有鼠标在屏幕的x,y轴左边,你也可以使用echartsInstance.convertFromPixel来转换,但是其中转换公式和代码的时间也许比你写出来的时间更长

    当然你也可以使用ecahrts-gl的 1.0.0 beta-6 版本来做这个版本就可以直接绑定事件,但是Radeon高亮设置不了,最好直接引入他的源代码把import 'echarts-gl'替换成import '../node_modules/echarts-gl/dist/echarts-gl.js';

    作者:Xia12137817

    链接:https://juejin.cn/post/684490...

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    腾讯位置服务 赞了文章 · 11月24日

    手把手教你实现3D地图的定时高亮和点击事件

    技术选型

    文章所选技术栈:vue、echarts、echarts-gl

    安装Vue和echarts

    1、安装echarts和echarts-al

    npm i echarts --save npm i echarts-gl --save

    2、引用echarts和echarts-gl

    import echarts from 'echarts';
    import 'echarts-gl'
    
    Vue.prototype.$echarts = echarts

    3、页面引入

    require('../../node_modules/echarts/map/js/china')

    此时地图消息就在你的node_modules/echarts/map/china中

    初始化echarts-gl 3D地图

    1、新建一个option.js 这个文件是用来放配置项的,不建立也可以,但是页面代码多会不不美观

    2、配置页代码如下 (主要是地点标识和3D地图的颜色样式)

    //标识数据,用来标识地图上的点,给用户提供点击事件
    var geoCoordMap = {
        '黑龙江': [127.9688, 45.368],
        '内蒙古': [110.3467, 41.4899],
        "吉林": [125.8154, 44.2584],
        '北京市': [116.4551, 40.2539],
        "辽宁": [123.1238, 42.1216],
        "河北": [114.4995, 38.1006],
        "天津": [117.4219, 39.4189],
        "山西": [112.3352, 37.9413],
        "陕西": [109.1162, 34.2004],
        "甘肃": [103.5901, 36.3043],
        "宁夏": [106.3586, 38.1775],
        "青海": [101.4038, 36.8207],
        "新疆": [87.9236, 43.5883],
        "西藏": [91.11, 29.97],
        "四川": [103.9526, 30.7617],
        "重庆": [108.384366, 30.439702],
        "山东": [117.1582, 36.8701],
        "河南": [113.4668, 34.6234],
        "江苏": [118.8062, 31.9208],
        "安徽": [117.29, 32.0581],
        "湖北": [114.3896, 30.6628],
        "浙江": [119.5313, 29.8773],
        "福建": [119.4543, 25.9222],
        "江西": [116.0046, 28.6633],
        "湖南": [113.0823, 28.2568],
        "贵州": [106.6992, 26.7682],
        "云南": [102.9199, 25.4663],
        "广东": [113.12244, 23.009505],
        "广西": [108.479, 23.1152],
        "海南": [110.3893, 19.8516],
        '上海': [121.4648, 31.2891]
    
    };
    var chinaDatas = [
        [{
            name: '黑龙江',
            value: 100
        }],
        [{
            name: '内蒙古',
            value: 300
        }],
        [{
            name: '吉林',
            value: 300
        }],
        [{
            name: '辽宁',
            value: 300
        }],
        [{
            name: '河北',
            value: 300
        }],
        [{
            name: '天津',
            value: 300
        }],
        [{
            name: '山西',
            value: 300
        }],
        [{
            name: '陕西',
            value: 300
        }],
        [{
            name: '甘肃',
            value: 300
        }],
        [{
            name: '宁夏',
            value: 300
        }],
        [{
            name: '青海',
            value: 300
        }],
        [{
            name: '新疆',
            value: 300
        }],
        [{
            name: '西藏',
            value: 300
        }],
        [{
            name: '四川',
            value: 300
        }],
        [{
            name: '重庆',
            value: 300
        }],
        [{
            name: '山东',
            value: 300
        }],
        [{
            name: '河南',
            value: 300
        }],
        [{
            name: '江苏',
            value: 300
        }],
        [{
            name: '安徽',
            value: 300
        }],
        [{
            name: '湖北',
            value: 300
        }],
        [{
            name: '浙江',
            value: 300
        }],
        [{
            name: '福建',
            value: 300
        }],
        [{
            name: '江西',
            value: 300
        }],
        [{
            name: '湖南',
            value: 300
        }],
        [{
            name: '贵州',
            value: 300
        }],
        [{
            name: '广西',
            value: 300
        }],
        [{
            name: '海南',
            value: 300
        }],
        [{
            name: '上海',
            value: 1300
        }]
    ];
    
    //处理数据,是的数据格式符合echarts
    var convertData = function(data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i][0].name];
            if (geoCoord) {
                res.push({
                    name: data[i][0].name,
                    value: geoCoord.concat(data[i][0].value)
                });
            }
        }
        return res;
    };
    
    //具体配置,并输出
    
    export default {
        backgroundColor: '#fff',
        geo3D: {
            data: convertData(chinaDatas),
            map: 'china',
            color: '#fff',
            roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。
            itemStyle: {
                areaColor: 'rgba(255,255,255,1)',
                opacity: 1,
                borderWidth: 1,
                borderColor: '#000'
            }, //地图上每个省的颜色配置
            label: {
                show: false,
            },// 标特是否显示,显示配置
            
            emphasis: { //当鼠标放上去的状态
                label: {
                    show: true
                },
                itemStyle: {
                    color: '#000'
                }
            },
            
            tooltip: 'axis', //提示框设置
            
            formatter: val => {
                return val
            },
            /** 标签内容格式器,支持字符串模板和
            回调函数两种形式,字符串模板与回调函数
            返回的字符串均支持用 \n 换行。**/
            
            // legendHoverLink: true,
            
            regions: [{
                name: '山东',
                itemStyle: {
                    color: '#000',
                    opacity: 1,
                },
                label: {
                    show: true
                },
            }],//默认高亮区域
        },
        series: [{
            name: 'light',
            type: 'scatter3D', //标识点
            symbol: 'pin',  //散点的形状。默认为圆形。
            coordinateSystem: 'geo3D',
            data: convertData(chinaDatas),
            symbolSize: function() {
                return 36
            },
            label: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#f00'
                }
            },
            zlevel: 6,
            emphasis: { //当鼠标放上去  地区区域是否显示名称
                label: {
                    show: false
                },
                itemStyle: {
                    color: '#000'
                }
            },
        },
    
        ]
    };

    3、引入option

    import option from '你的option地址'

    4、创建 div

    <div id="myChart" style="height: 1000px; width: 1000px;"></div>

    5、初始化

    var myChart = this.$echarts.init(document.getElementById('myChart'));

    6、加载配置项

    myChart.setOption(option);

    7、效果图展示,颜色可以自己配置

    增加定时高亮事件和点击事件

    1、定时器代码(如何高亮关键就是改变geo的regions的name属性)

    let regions = setInterval(function() {
        option.geo3D.regions[0].name = option.geo3D.data[count].name
        myChart.setOption(option);
        count ++
        if (count === option.geo3D.data.length) {
            count = 0
        }
    }, 1000);

    2、点击事件

    myChart.on('click',function(params){
        clearInterval(regions)
        console.log(params)
        count = params.dataIndex
        option.geo3D.regions[0].name = params.name
        myChart.setOption(option);
    });

    3、双击重新开始定时器事件

    myChart.getZr().on('dblclick', function(params) {
        regions = setInterval(function() {
            option.geo3D.regions[0].name = option.geo3D.data[count].name
            console.log(count)
            myChart.setOption(option);
            count ++
            if (count === option.geo3D.data.length) {
                count = 0
            }
        }, 1000);
    });

    4、其实要是在2D上可以用

    myChart.dispatchAction({
        type: 'highlight',
        // 可选,系列 index,可以是一个数组指定多个系列
        seriesIndex?: number|Array,
        // 可选,系列名称,可以是一个数组指定多个系列
        seriesName?: string|Array,
        // 可选,数据的 index
        dataIndex?: number,
        // 可选,数据的 名称
        name?: string
    })

    这个事件,很遗憾的是3D并不支持这些api

    特别注意

    • 点击事件(click)

    它只能使用getZr()来搞点击,而且返回的信息只有鼠标在屏幕的x,y轴左边,你也可以使用echartsInstance.convertFromPixel来转换,但是其中转换公式和代码的时间也许比你写出来的时间更长

    当然你也可以使用ecahrts-gl的 1.0.0 beta-6 版本来做这个版本就可以直接绑定事件,但是Radeon高亮设置不了,最好直接引入他的源代码把import 'echarts-gl'替换成import '../node_modules/echarts-gl/dist/echarts-gl.js';

    作者:Xia12137817

    链接:https://juejin.cn/post/684490...

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 3 收藏 3 评论 0

    腾讯位置服务 收藏了文章 · 11月23日

    3D地图的定时高亮和点击事件

    技术选型

    文章所选技术栈:vue、echarts、echarts-gl

    安装Vue和echarts

    1、安装echarts和echarts-al

    npm i echarts --save npm i echarts-gl --save

    2、引用echarts和echarts-gl

    import echarts from 'echarts';
    import 'echarts-gl'
    
    Vue.prototype.$echarts = echarts

    3、页面引入

    require('../../node_modules/echarts/map/js/china')

    此时地图消息就在你的node_modules/echarts/map/china中

    初始化echarts-gl 3D地图

    1、新建一个option.js 这个文件是用来放配置项的,不建立也可以,但是页面代码多会不不美观

    2、配置页代码如下 (主要是地点标识和3D地图的颜色样式)

    //标识数据,用来标识地图上的点,给用户提供点击事件
    var geoCoordMap = {
        '黑龙江': [127.9688, 45.368],
        '内蒙古': [110.3467, 41.4899],
        "吉林": [125.8154, 44.2584],
        '北京市': [116.4551, 40.2539],
        "辽宁": [123.1238, 42.1216],
        "河北": [114.4995, 38.1006],
        "天津": [117.4219, 39.4189],
        "山西": [112.3352, 37.9413],
        "陕西": [109.1162, 34.2004],
        "甘肃": [103.5901, 36.3043],
        "宁夏": [106.3586, 38.1775],
        "青海": [101.4038, 36.8207],
        "新疆": [87.9236, 43.5883],
        "西藏": [91.11, 29.97],
        "四川": [103.9526, 30.7617],
        "重庆": [108.384366, 30.439702],
        "山东": [117.1582, 36.8701],
        "河南": [113.4668, 34.6234],
        "江苏": [118.8062, 31.9208],
        "安徽": [117.29, 32.0581],
        "湖北": [114.3896, 30.6628],
        "浙江": [119.5313, 29.8773],
        "福建": [119.4543, 25.9222],
        "江西": [116.0046, 28.6633],
        "湖南": [113.0823, 28.2568],
        "贵州": [106.6992, 26.7682],
        "云南": [102.9199, 25.4663],
        "广东": [113.12244, 23.009505],
        "广西": [108.479, 23.1152],
        "海南": [110.3893, 19.8516],
        '上海': [121.4648, 31.2891]
    
    };
    var chinaDatas = [
        [{
            name: '黑龙江',
            value: 100
        }],
        [{
            name: '内蒙古',
            value: 300
        }],
        [{
            name: '吉林',
            value: 300
        }],
        [{
            name: '辽宁',
            value: 300
        }],
        [{
            name: '河北',
            value: 300
        }],
        [{
            name: '天津',
            value: 300
        }],
        [{
            name: '山西',
            value: 300
        }],
        [{
            name: '陕西',
            value: 300
        }],
        [{
            name: '甘肃',
            value: 300
        }],
        [{
            name: '宁夏',
            value: 300
        }],
        [{
            name: '青海',
            value: 300
        }],
        [{
            name: '新疆',
            value: 300
        }],
        [{
            name: '西藏',
            value: 300
        }],
        [{
            name: '四川',
            value: 300
        }],
        [{
            name: '重庆',
            value: 300
        }],
        [{
            name: '山东',
            value: 300
        }],
        [{
            name: '河南',
            value: 300
        }],
        [{
            name: '江苏',
            value: 300
        }],
        [{
            name: '安徽',
            value: 300
        }],
        [{
            name: '湖北',
            value: 300
        }],
        [{
            name: '浙江',
            value: 300
        }],
        [{
            name: '福建',
            value: 300
        }],
        [{
            name: '江西',
            value: 300
        }],
        [{
            name: '湖南',
            value: 300
        }],
        [{
            name: '贵州',
            value: 300
        }],
        [{
            name: '广西',
            value: 300
        }],
        [{
            name: '海南',
            value: 300
        }],
        [{
            name: '上海',
            value: 1300
        }]
    ];
    
    //处理数据,是的数据格式符合echarts
    var convertData = function(data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i][0].name];
            if (geoCoord) {
                res.push({
                    name: data[i][0].name,
                    value: geoCoord.concat(data[i][0].value)
                });
            }
        }
        return res;
    };
    
    //具体配置,并输出
    
    export default {
        backgroundColor: '#fff',
        geo3D: {
            data: convertData(chinaDatas),
            map: 'china',
            color: '#fff',
            roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。
            itemStyle: {
                areaColor: 'rgba(255,255,255,1)',
                opacity: 1,
                borderWidth: 1,
                borderColor: '#000'
            }, //地图上每个省的颜色配置
            label: {
                show: false,
            },// 标特是否显示,显示配置
            
            emphasis: { //当鼠标放上去的状态
                label: {
                    show: true
                },
                itemStyle: {
                    color: '#000'
                }
            },
            
            tooltip: 'axis', //提示框设置
            
            formatter: val => {
                return val
            },
            /** 标签内容格式器,支持字符串模板和
            回调函数两种形式,字符串模板与回调函数
            返回的字符串均支持用 \n 换行。**/
            
            // legendHoverLink: true,
            
            regions: [{
                name: '山东',
                itemStyle: {
                    color: '#000',
                    opacity: 1,
                },
                label: {
                    show: true
                },
            }],//默认高亮区域
        },
        series: [{
            name: 'light',
            type: 'scatter3D', //标识点
            symbol: 'pin',  //散点的形状。默认为圆形。
            coordinateSystem: 'geo3D',
            data: convertData(chinaDatas),
            symbolSize: function() {
                return 36
            },
            label: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#f00'
                }
            },
            zlevel: 6,
            emphasis: { //当鼠标放上去  地区区域是否显示名称
                label: {
                    show: false
                },
                itemStyle: {
                    color: '#000'
                }
            },
        },
    
        ]
    };

    3、引入option

    import option from '你的option地址'

    4、创建 div

    <div id="myChart" style="height: 1000px; width: 1000px;"></div>

    5、初始化

    var myChart = this.$echarts.init(document.getElementById('myChart'));

    6、加载配置项

    myChart.setOption(option);

    7、效果图展示,颜色可以自己配置

    增加定时高亮事件和点击事件

    1、定时器代码(如何高亮关键就是改变geo的regions的name属性)

    let regions = setInterval(function() {
        option.geo3D.regions[0].name = option.geo3D.data[count].name
        myChart.setOption(option);
        count ++
        if (count === option.geo3D.data.length) {
            count = 0
        }
    }, 1000);

    2、点击事件

    myChart.on('click',function(params){
        clearInterval(regions)
        console.log(params)
        count = params.dataIndex
        option.geo3D.regions[0].name = params.name
        myChart.setOption(option);
    });

    3、双击重新开始定时器事件

    myChart.getZr().on('dblclick', function(params) {
        regions = setInterval(function() {
            option.geo3D.regions[0].name = option.geo3D.data[count].name
            console.log(count)
            myChart.setOption(option);
            count ++
            if (count === option.geo3D.data.length) {
                count = 0
            }
        }, 1000);
    });

    4、其实要是在2D上可以用

    myChart.dispatchAction({
        type: 'highlight',
        // 可选,系列 index,可以是一个数组指定多个系列
        seriesIndex?: number|Array,
        // 可选,系列名称,可以是一个数组指定多个系列
        seriesName?: string|Array,
        // 可选,数据的 index
        dataIndex?: number,
        // 可选,数据的 名称
        name?: string
    })

    这个事件,很遗憾的是3D并不支持这些api

    特别注意

    • 点击事件(click)

    它只能使用getZr()来搞点击,而且返回的信息只有鼠标在屏幕的x,y轴左边,你也可以使用echartsInstance.convertFromPixel来转换,但是其中转换公式和代码的时间也许比你写出来的时间更长

    当然你也可以使用ecahrts-gl的 1.0.0 beta-6 版本来做这个版本就可以直接绑定事件,但是Radeon高亮设置不了,最好直接引入他的源代码把import 'echarts-gl'替换成import '../node_modules/echarts-gl/dist/echarts-gl.js';

    作者:Xia12137817

    链接:https://juejin.cn/post/684490...

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    腾讯位置服务 赞了文章 · 11月23日

    3D地图的定时高亮和点击事件

    技术选型

    文章所选技术栈:vue、echarts、echarts-gl

    安装Vue和echarts

    1、安装echarts和echarts-al

    npm i echarts --save npm i echarts-gl --save

    2、引用echarts和echarts-gl

    import echarts from 'echarts';
    import 'echarts-gl'
    
    Vue.prototype.$echarts = echarts

    3、页面引入

    require('../../node_modules/echarts/map/js/china')

    此时地图消息就在你的node_modules/echarts/map/china中

    初始化echarts-gl 3D地图

    1、新建一个option.js 这个文件是用来放配置项的,不建立也可以,但是页面代码多会不不美观

    2、配置页代码如下 (主要是地点标识和3D地图的颜色样式)

    //标识数据,用来标识地图上的点,给用户提供点击事件
    var geoCoordMap = {
        '黑龙江': [127.9688, 45.368],
        '内蒙古': [110.3467, 41.4899],
        "吉林": [125.8154, 44.2584],
        '北京市': [116.4551, 40.2539],
        "辽宁": [123.1238, 42.1216],
        "河北": [114.4995, 38.1006],
        "天津": [117.4219, 39.4189],
        "山西": [112.3352, 37.9413],
        "陕西": [109.1162, 34.2004],
        "甘肃": [103.5901, 36.3043],
        "宁夏": [106.3586, 38.1775],
        "青海": [101.4038, 36.8207],
        "新疆": [87.9236, 43.5883],
        "西藏": [91.11, 29.97],
        "四川": [103.9526, 30.7617],
        "重庆": [108.384366, 30.439702],
        "山东": [117.1582, 36.8701],
        "河南": [113.4668, 34.6234],
        "江苏": [118.8062, 31.9208],
        "安徽": [117.29, 32.0581],
        "湖北": [114.3896, 30.6628],
        "浙江": [119.5313, 29.8773],
        "福建": [119.4543, 25.9222],
        "江西": [116.0046, 28.6633],
        "湖南": [113.0823, 28.2568],
        "贵州": [106.6992, 26.7682],
        "云南": [102.9199, 25.4663],
        "广东": [113.12244, 23.009505],
        "广西": [108.479, 23.1152],
        "海南": [110.3893, 19.8516],
        '上海': [121.4648, 31.2891]
    
    };
    var chinaDatas = [
        [{
            name: '黑龙江',
            value: 100
        }],
        [{
            name: '内蒙古',
            value: 300
        }],
        [{
            name: '吉林',
            value: 300
        }],
        [{
            name: '辽宁',
            value: 300
        }],
        [{
            name: '河北',
            value: 300
        }],
        [{
            name: '天津',
            value: 300
        }],
        [{
            name: '山西',
            value: 300
        }],
        [{
            name: '陕西',
            value: 300
        }],
        [{
            name: '甘肃',
            value: 300
        }],
        [{
            name: '宁夏',
            value: 300
        }],
        [{
            name: '青海',
            value: 300
        }],
        [{
            name: '新疆',
            value: 300
        }],
        [{
            name: '西藏',
            value: 300
        }],
        [{
            name: '四川',
            value: 300
        }],
        [{
            name: '重庆',
            value: 300
        }],
        [{
            name: '山东',
            value: 300
        }],
        [{
            name: '河南',
            value: 300
        }],
        [{
            name: '江苏',
            value: 300
        }],
        [{
            name: '安徽',
            value: 300
        }],
        [{
            name: '湖北',
            value: 300
        }],
        [{
            name: '浙江',
            value: 300
        }],
        [{
            name: '福建',
            value: 300
        }],
        [{
            name: '江西',
            value: 300
        }],
        [{
            name: '湖南',
            value: 300
        }],
        [{
            name: '贵州',
            value: 300
        }],
        [{
            name: '广西',
            value: 300
        }],
        [{
            name: '海南',
            value: 300
        }],
        [{
            name: '上海',
            value: 1300
        }]
    ];
    
    //处理数据,是的数据格式符合echarts
    var convertData = function(data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i][0].name];
            if (geoCoord) {
                res.push({
                    name: data[i][0].name,
                    value: geoCoord.concat(data[i][0].value)
                });
            }
        }
        return res;
    };
    
    //具体配置,并输出
    
    export default {
        backgroundColor: '#fff',
        geo3D: {
            data: convertData(chinaDatas),
            map: 'china',
            color: '#fff',
            roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。
            itemStyle: {
                areaColor: 'rgba(255,255,255,1)',
                opacity: 1,
                borderWidth: 1,
                borderColor: '#000'
            }, //地图上每个省的颜色配置
            label: {
                show: false,
            },// 标特是否显示,显示配置
            
            emphasis: { //当鼠标放上去的状态
                label: {
                    show: true
                },
                itemStyle: {
                    color: '#000'
                }
            },
            
            tooltip: 'axis', //提示框设置
            
            formatter: val => {
                return val
            },
            /** 标签内容格式器,支持字符串模板和
            回调函数两种形式,字符串模板与回调函数
            返回的字符串均支持用 \n 换行。**/
            
            // legendHoverLink: true,
            
            regions: [{
                name: '山东',
                itemStyle: {
                    color: '#000',
                    opacity: 1,
                },
                label: {
                    show: true
                },
            }],//默认高亮区域
        },
        series: [{
            name: 'light',
            type: 'scatter3D', //标识点
            symbol: 'pin',  //散点的形状。默认为圆形。
            coordinateSystem: 'geo3D',
            data: convertData(chinaDatas),
            symbolSize: function() {
                return 36
            },
            label: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#f00'
                }
            },
            zlevel: 6,
            emphasis: { //当鼠标放上去  地区区域是否显示名称
                label: {
                    show: false
                },
                itemStyle: {
                    color: '#000'
                }
            },
        },
    
        ]
    };

    3、引入option

    import option from '你的option地址'

    4、创建 div

    <div id="myChart" style="height: 1000px; width: 1000px;"></div>

    5、初始化

    var myChart = this.$echarts.init(document.getElementById('myChart'));

    6、加载配置项

    myChart.setOption(option);

    7、效果图展示,颜色可以自己配置

    增加定时高亮事件和点击事件

    1、定时器代码(如何高亮关键就是改变geo的regions的name属性)

    let regions = setInterval(function() {
        option.geo3D.regions[0].name = option.geo3D.data[count].name
        myChart.setOption(option);
        count ++
        if (count === option.geo3D.data.length) {
            count = 0
        }
    }, 1000);

    2、点击事件

    myChart.on('click',function(params){
        clearInterval(regions)
        console.log(params)
        count = params.dataIndex
        option.geo3D.regions[0].name = params.name
        myChart.setOption(option);
    });

    3、双击重新开始定时器事件

    myChart.getZr().on('dblclick', function(params) {
        regions = setInterval(function() {
            option.geo3D.regions[0].name = option.geo3D.data[count].name
            console.log(count)
            myChart.setOption(option);
            count ++
            if (count === option.geo3D.data.length) {
                count = 0
            }
        }, 1000);
    });

    4、其实要是在2D上可以用

    myChart.dispatchAction({
        type: 'highlight',
        // 可选,系列 index,可以是一个数组指定多个系列
        seriesIndex?: number|Array,
        // 可选,系列名称,可以是一个数组指定多个系列
        seriesName?: string|Array,
        // 可选,数据的 index
        dataIndex?: number,
        // 可选,数据的 名称
        name?: string
    })

    这个事件,很遗憾的是3D并不支持这些api

    特别注意

    • 点击事件(click)

    它只能使用getZr()来搞点击,而且返回的信息只有鼠标在屏幕的x,y轴左边,你也可以使用echartsInstance.convertFromPixel来转换,但是其中转换公式和代码的时间也许比你写出来的时间更长

    当然你也可以使用ecahrts-gl的 1.0.0 beta-6 版本来做这个版本就可以直接绑定事件,但是Radeon高亮设置不了,最好直接引入他的源代码把import 'echarts-gl'替换成import '../node_modules/echarts-gl/dist/echarts-gl.js';

    作者:Xia12137817

    链接:https://juejin.cn/post/684490...

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 3 收藏 3 评论 0

    腾讯位置服务 发布了文章 · 11月20日

    基于echarts实现3D地图的定时高亮和点击事件

    技术选型

    文章所选技术栈:vue、echarts、echarts-gl

    安装Vue和echarts

    1、安装echarts和echarts-al

    npm i echarts --save npm i echarts-gl --save

    2、引用echarts和echarts-gl

    import echarts from 'echarts';
    import 'echarts-gl'
    
    Vue.prototype.$echarts = echarts

    3、页面引入

    require('../../node_modules/echarts/map/js/china')

    此时地图消息就在你的node_modules/echarts/map/china中

    初始化echarts-gl 3D地图

    1、新建一个option.js 这个文件是用来放配置项的,不建立也可以,但是页面代码多会不不美观

    2、配置页代码如下 (主要是地点标识和3D地图的颜色样式)

    //标识数据,用来标识地图上的点,给用户提供点击事件
    var geoCoordMap = {
        '黑龙江': [127.9688, 45.368],
        '内蒙古': [110.3467, 41.4899],
        "吉林": [125.8154, 44.2584],
        '北京市': [116.4551, 40.2539],
        "辽宁": [123.1238, 42.1216],
        "河北": [114.4995, 38.1006],
        "天津": [117.4219, 39.4189],
        "山西": [112.3352, 37.9413],
        "陕西": [109.1162, 34.2004],
        "甘肃": [103.5901, 36.3043],
        "宁夏": [106.3586, 38.1775],
        "青海": [101.4038, 36.8207],
        "新疆": [87.9236, 43.5883],
        "西藏": [91.11, 29.97],
        "四川": [103.9526, 30.7617],
        "重庆": [108.384366, 30.439702],
        "山东": [117.1582, 36.8701],
        "河南": [113.4668, 34.6234],
        "江苏": [118.8062, 31.9208],
        "安徽": [117.29, 32.0581],
        "湖北": [114.3896, 30.6628],
        "浙江": [119.5313, 29.8773],
        "福建": [119.4543, 25.9222],
        "江西": [116.0046, 28.6633],
        "湖南": [113.0823, 28.2568],
        "贵州": [106.6992, 26.7682],
        "云南": [102.9199, 25.4663],
        "广东": [113.12244, 23.009505],
        "广西": [108.479, 23.1152],
        "海南": [110.3893, 19.8516],
        '上海': [121.4648, 31.2891]
    
    };
    var chinaDatas = [
        [{
            name: '黑龙江',
            value: 100
        }],
        [{
            name: '内蒙古',
            value: 300
        }],
        [{
            name: '吉林',
            value: 300
        }],
        [{
            name: '辽宁',
            value: 300
        }],
        [{
            name: '河北',
            value: 300
        }],
        [{
            name: '天津',
            value: 300
        }],
        [{
            name: '山西',
            value: 300
        }],
        [{
            name: '陕西',
            value: 300
        }],
        [{
            name: '甘肃',
            value: 300
        }],
        [{
            name: '宁夏',
            value: 300
        }],
        [{
            name: '青海',
            value: 300
        }],
        [{
            name: '新疆',
            value: 300
        }],
        [{
            name: '西藏',
            value: 300
        }],
        [{
            name: '四川',
            value: 300
        }],
        [{
            name: '重庆',
            value: 300
        }],
        [{
            name: '山东',
            value: 300
        }],
        [{
            name: '河南',
            value: 300
        }],
        [{
            name: '江苏',
            value: 300
        }],
        [{
            name: '安徽',
            value: 300
        }],
        [{
            name: '湖北',
            value: 300
        }],
        [{
            name: '浙江',
            value: 300
        }],
        [{
            name: '福建',
            value: 300
        }],
        [{
            name: '江西',
            value: 300
        }],
        [{
            name: '湖南',
            value: 300
        }],
        [{
            name: '贵州',
            value: 300
        }],
        [{
            name: '广西',
            value: 300
        }],
        [{
            name: '海南',
            value: 300
        }],
        [{
            name: '上海',
            value: 1300
        }]
    ];
    
    //处理数据,是的数据格式符合echarts
    var convertData = function(data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i][0].name];
            if (geoCoord) {
                res.push({
                    name: data[i][0].name,
                    value: geoCoord.concat(data[i][0].value)
                });
            }
        }
        return res;
    };
    
    //具体配置,并输出
    
    export default {
        backgroundColor: '#fff',
        geo3D: {
            data: convertData(chinaDatas),
            map: 'china',
            color: '#fff',
            roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。
            itemStyle: {
                areaColor: 'rgba(255,255,255,1)',
                opacity: 1,
                borderWidth: 1,
                borderColor: '#000'
            }, //地图上每个省的颜色配置
            label: {
                show: false,
            },// 标特是否显示,显示配置
            
            emphasis: { //当鼠标放上去的状态
                label: {
                    show: true
                },
                itemStyle: {
                    color: '#000'
                }
            },
            
            tooltip: 'axis', //提示框设置
            
            formatter: val => {
                return val
            },
            /** 标签内容格式器,支持字符串模板和
            回调函数两种形式,字符串模板与回调函数
            返回的字符串均支持用 \n 换行。**/
            
            // legendHoverLink: true,
            
            regions: [{
                name: '山东',
                itemStyle: {
                    color: '#000',
                    opacity: 1,
                },
                label: {
                    show: true
                },
            }],//默认高亮区域
        },
        series: [{
            name: 'light',
            type: 'scatter3D', //标识点
            symbol: 'pin',  //散点的形状。默认为圆形。
            coordinateSystem: 'geo3D',
            data: convertData(chinaDatas),
            symbolSize: function() {
                return 36
            },
            label: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#f00'
                }
            },
            zlevel: 6,
            emphasis: { //当鼠标放上去  地区区域是否显示名称
                label: {
                    show: false
                },
                itemStyle: {
                    color: '#000'
                }
            },
        },
    
        ]
    };

    3、引入option

    import option from '你的option地址'

    4、创建 div

    <div id="myChart" style="height: 1000px; width: 1000px;"></div>

    5、初始化

    var myChart = this.$echarts.init(document.getElementById('myChart'));

    6、加载配置项

    myChart.setOption(option);

    7、效果图展示,颜色可以自己配置

    增加定时高亮事件和点击事件

    1、定时器代码(如何高亮关键就是改变geo的regions的name属性)

    let regions = setInterval(function() {
        option.geo3D.regions[0].name = option.geo3D.data[count].name
        myChart.setOption(option);
        count ++
        if (count === option.geo3D.data.length) {
            count = 0
        }
    }, 1000);

    2、点击事件

    myChart.on('click',function(params){
        clearInterval(regions)
        console.log(params)
        count = params.dataIndex
        option.geo3D.regions[0].name = params.name
        myChart.setOption(option);
    });

    3、双击重新开始定时器事件

    myChart.getZr().on('dblclick', function(params) {
        regions = setInterval(function() {
            option.geo3D.regions[0].name = option.geo3D.data[count].name
            console.log(count)
            myChart.setOption(option);
            count ++
            if (count === option.geo3D.data.length) {
                count = 0
            }
        }, 1000);
    });

    4、其实要是在2D上可以用

    myChart.dispatchAction({
        type: 'highlight',
        // 可选,系列 index,可以是一个数组指定多个系列
        seriesIndex?: number|Array,
        // 可选,系列名称,可以是一个数组指定多个系列
        seriesName?: string|Array,
        // 可选,数据的 index
        dataIndex?: number,
        // 可选,数据的 名称
        name?: string
    })

    这个事件,很遗憾的是3D并不支持这些api

    特别注意

    • 点击事件(click)

    它只能使用getZr()来搞点击,而且返回的信息只有鼠标在屏幕的x,y轴左边,你也可以使用echartsInstance.convertFromPixel来转换,但是其中转换公式和代码的时间也许比你写出来的时间更长

    当然你也可以使用ecahrts-gl的 1.0.0 beta-6 版本来做这个版本就可以直接绑定事件,但是Radeon高亮设置不了,最好直接引入他的源代码把import 'echarts-gl'替换成import '../node_modules/echarts-gl/dist/echarts-gl.js';

    作者:Xia12137817

    链接:https://juejin.cn/post/684490...

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    赞 11 收藏 8 评论 1

    腾讯位置服务 收藏了文章 · 11月18日

    坐标拾取器功能实现demo

    需求

    1、搜索具体地址,自动填写经纬度,并在地图上标记

    2、点击地图上一点,可重新填写经纬度并且标记

    代码

    • 在dom新建div渲染地图
    <el-form-item label="店铺地址" prop="address">
      <el-input v-model="fristForm.address"></el-input>
      <el-input
        class="long-lat"
        v-model="fristForm.longitude"
        placeholder="经度"
      ></el-input>
      <el-input
        class="long-lat"
        v-model="fristForm.latitude"
        placeholder="纬度"
      ></el-input>
      <el-button size="mini" type="primary" @click="searchKeyword"
        >搜索</el-button
      >
    </el-form-item>
    <span class="changeAddress">点击地图更换分店定位地址</span>
    <!-- 渲染地图的div容器 -->
    <div id="container" class="mapbox"></div>
    • js定义地图变量并设置需求
    var searchService,geocoder,map,markersArray = [];
    <script>
    export default {
        mounted() {
          this.init();
        },
        methods:{
            init() {
              var that = this;
              var center = new qq.maps.LatLng(39.916527, 116.397128);
              var map = new qq.maps.Map(document.getElementById("container"), {
                center: center,
                zoom: 13
              });
              var latlngBounds = new qq.maps.LatLngBounds();
              qq.maps.event.addListener(map, "click", function(event) {
                console.log(event);
                that.fristForm.longitude = event.latLng.getLng(); // 经度
                that.fristForm.latitude = event.latLng.getLat(); // 纬度
    
                if (markersArray) {
                  for (let i in markersArray) {
                    markersArray[i].setMap(null);
                  }
                }
                var marker = new qq.maps.Marker({
                  map: map,
                  position: event.latLng
                });
                markersArray.push(marker);
              });
    
              geocoder = new qq.maps.Geocoder({
                complete: function(result) {
                  console.log(result);
                  that.fristForm.longitude = result.detail.location.lng;
                  that.fristForm.latitude = result.detail.location.lat;
                  map.setCenter(result.detail.location);
                  var marker = new qq.maps.Marker({
                    map: map,
                    position: result.detail.location
                  });
                  markersArray.push(marker);
                }
              });
            },
        },
        // 搜索地址
        searchKeyword() {
          var keyword = this.fristForm.address;
          this.clearOverlays(markersArray);
          //根据输入的城市设置搜索范围
          // searchService.setLocation("北京");
          //根据输入的关键字在搜索范围内检索
          if (keyword) {
            // searchService.search(keyword);
            geocoder.getLocation(keyword);
          } else {
            alert("请输入地址");
          }
        },
    }
    </script>

    文档参考

    以上代码使用的是jsapi功能,目前对应功能已升级JavaScript API GL,地址解析功能可直接调取接口使用,欢迎大家体验!

    地址解析(地址转坐标)

    JavaScript API GL参考手册

    作者:houqq

    链接:http://www.wgoodp.icu/a/11...

    来源:segmentfault

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    查看原文

    认证与成就

    • 获得 176 次点赞
    • 获得 2 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 2 枚铜徽章

    擅长技能
    编辑

    (??? )
    暂时没有

    开源项目 & 著作
    编辑

    (??? )
    暂时没有

    注册于 2019-09-10
    个人主页被 2.4k 人浏览

    bt365体育投注