mapv修改源码实现图标和管道到统一页面显示,图标和管道和点击

一、效果图

在这里插入图片描述

二、背景

map 地图添加marker,是操作的dom,而mapv是使用的canvas方式,所以性能要好

三、Mapv和MapVGL的区别

百度地图 JavaScript API GL快速升级 和mapVGL的使用
Mapv 是一款基于百度地图的大数据可视化开源库,可以用来展示大量的点、线、面的数据,每种数据也有不同的展示类型,如直接打点、热力图、网格、聚合等方式展示数据。

MapVGL,是一款基于WebGL的地理信息可视化库,可以用来展示大量基于3D的地理信息点线面数据。设计初衷主要是为了解决大数据量的三维地理数据展示问题及一些炫酷的三维效果。

四、为什么要修改mapv的源码

原因1:type为“simple”不能自定义图标
原因2:type为“icon”不能添加line线
原因3: type为“icon”和“simple”能实现line线和自定义图标,但是是两个图层,不能同时点击
所有,定义type为“simple”时。同时去处理icon和line线

五、修改步骤

1、去mapv 下载源码,安装依赖并运行
地理信息可视化开源库
github地址

2、当icon有值的时候,去调用import DrawIcon from “…/draw/icon”; icon里面的draw方法画自定义图标
在这里插入图片描述
3、当类型为simple 时,自定义图标是没有点击事件的,点击事件是通过path去判断的,所以模拟画一个rect去实现点击事件
在这里插入图片描述
4、还有会用到的方法有

 var dataSet = new mapv.DataSet(data);
 var mapvLayer = new mapv.baiduMapLayer(map, dataSet, options);
 mapvLayer.destroy();// 销毁layer
 mapvLayer.clearData();// 清除数据
 dataSet.set({ //重新设置数据
    geometry: {
          type: 'LineString',
         coordinates: coordinates
      },
      properties: {
          count: 0
     },
  });

mapvLayer.setOptions(options); //重新设置options

5、参加文件为road.html

6、github 地址为:
修改后的mapv

7、常见地图数据大卡顿的问题

1、mapv;(多层级点击问题)多个图层变成一个图层
2、分层级:省市区
3、海量点(图标不能更换),添加管道有没有问题呢?
4、按可视区域请求点数据;
5、数据进行抽稀
6、点聚合(百度地图点聚合点击事件卡顿问题解决) -https://blog.csdn.net/qq_23447231/article/details/132872794

注意:浏览器缩放不等于100%时,拖动会出现重影的问题。浏览器设置为100%,2万多个点显示不成问题

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本人基于2017年12月最新API制作。 说明: 1)离线地图不是万能的, 有些依赖在线的功能是无法使用的, 请自行扩展 2)请查看 离线地图示例demo.html 里面的示例,或者查看地图API在线示例: http://developer.baidu.com/map/jsdemo.htm 3) 地图API请查看百度官方说明: http://developer.baidu.com/map/reference/index.php 4)如有更新,请查看网站: http://www.xiaoguo123.com/p/baidumap_offline_v21 5)此API用户大家交流学习,本人没有能力提供太多的技术帮助 6)由于某些用途导致的商业纠纷,和本人无关 新增: 1)支持显示卫星混合地图,瓦片图放到 tiles_hybrid 目录下 2)支持支定义混合图,瓦片图放到 tiles_self 目录下 3)增加根据城市名称设置地图中心, 请自行扩展map_city.js 4)增加鼠标测距示例 5)增加鼠标绘制线面示例 增加新的瓦片图: 1)使用地图下载工具(如太乐地图下载)下载你要的地区和级别 2)务必导出瓦片图(百度格式),可以选择导出jpg或png图形 3)按需要修改map_load.js,指定瓦片图的路径,或者按默认的来 4)目录说请看图片: 目录说明.jpg 基本的使用方法如下: 1)加载离线地图必须的文件: [removed][removed] <link rel="stylesheet" type="text/css" href="offlinemap/css/map.css"/> 2)增加一个容器用来显示地图 3)写JS脚本 [removed] var map = new BMap.Map("map_demo"); // 创建Map实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 7); // 初始化地图,设置中心点坐标和地图级别 map.setCurrentCity("武汉"); // 设置地图中心显示的城市 new! map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 map.addControl(new BMap.NavigationControl()); //缩放按钮 map.addControl(new BMap.MapTypeControl( {mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]} )); //添加地图类型控件 离线只支持普通、卫星地图; 三维不支持 [removed]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值