高德地图海量标记无法展示是什么问题?
当标记只有一千个左右的时候可以正常展示出来的,但是当标记为两千左右的时候,无法渲染出来标记,是一个都没有渲染出来,一点都无法入手。因为官网说什么使用海量标记上万个也有比较好的性能,但是我实际使用下来却是几千个都无法渲染出来。
initAMap() { AMapLoader.load({ key: "a34d5c1fd63e7fc1521bd56b3301d5ee", // 申请好的Web端开发者Key,首次调用 load 时必填 version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 plugins: ["AMap.Scale"], //需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...'] }) .then((AMap) => { this.map = new AMap.Map("container", { // 设置地图容器id viewMode: "3D", // 是否为3D地图模式 zoom: 11, // 初始化地图级别 center: [116.397428, 39.90923], // 初始化地图中心点位置 }); var style = { url: "//vdata.amap.com/icons/b18/1/2.png", //图标地址 size: new AMap.Size(11, 11), //图标大小 anchor: new AMap.Pixel(5, 5), //图标显示位置偏移量,基准点为图标左上角 }; let mapList = getMap(1); console.log(mapList); let data = []; mapList.forEach((item) => { data.push({ lnglat: [item.position[0], item.position[1]], }); }); var massMarks = new AMap.MassMarks(data, { zIndex: 5, cursor: "pointer", style: style, zooms: [3, 14], }); massMarks.setMap(this.map); // const labelsLayer = new AMap.LabelsLayer({ // zooms: [3, 20], // zIndex: 1000, // // 开启标注避让,默认为 true,开启后标注会根据所在区域进行避让 // collision: false, // // 开启标注淡入动画,默认开启 // // 开启后标注在地图上创建动画,默认动画时长300ms,动画效果为渐现 // animation: false, // }); // const icon = { // type: "image", // image: // "https://a.amap.com/jsapi_demos/static/demo-center/marker/express2.png", // size: [24, 34], // 图标尺寸 // anchor: "center", // }; // //设置文字对象 // const text = { // content: "", //要展示的文字内容 // direction: "right", //文字方向,有 icon 时为围绕文字的方向,没有 icon 时,则为相对 position 的位置 // offset: [-20, -5], //在 direction 基础上的偏移量 // //文字样式 // style: { // fontSize: 12, //字体大小 // fillColor: "#22886f", //字体颜色 // strokeColor: "#fff", //描边颜色 // strokeWidth: 2, //描边宽度 // }, // }; // // 获取随机地址经纬度 // let mapList = getMap(2); // console.log(mapList); // const labelMarker = []; // mapList.forEach((item) => { // labelMarker.push( // new AMap.LabelMarker({ // name: "标注", //此属性非绘制文字内容,仅为标识使用 // position: [item.position[0], item.position[1]], // zIndex: 2, // rank: 1, //避让优先级 // icon: icon, //标注图标,将 icon 对象传给 icon 属性 // text: text, //标注文本,将 text 对象传给 text 属性 // }) // ); // }); // //添加一个 labelMarker // labelsLayer.add(labelMarker); // this.map.add(labelsLayer); }) .catch((e) => { console.log(e); }); },
可以试试优化一下。通过地图比例来展示标记。比如地图比例较小 你可以合并多个小的标记为一个大的标记 反之就设置区域范围内可见的小标记即可。
你的点集合是异步获取吗?如果是,写个异步函数试吧
高德地图海量标记无法展示的问题可能由多种原因引起。以下是一些可能的原因和相应的解决方案:
针对你提供的代码,我注意到你在创建MassMarks
对象时,只传递了data
和style
参数,而没有传递map
参数。虽然你在后面通过massMarks.setMap(this.map)
将标记设置到了地图上,但你可以尝试在创建MassMarks
对象时直接传递map
参数,如下所示:
var massMarks = new AMap.MassMarks(data, { map: this.map, // 添加此行 zIndex: 5, cursor: "pointer", style: style, zooms: [3, 14],});
这样可以确保标记在创建时就被设置到了正确的地图上,可能有助于解决渲染问题。
另外,你也可以尝试调整zooms
参数的范围,确保标记在所需的缩放级别内可见。
如果以上建议仍然无法解决问题,你可能需要进一步检查代码和数据,或者查阅高德地图的官方文档和社区,寻求更具体的帮助。
本文向大家介绍高德地图WEB版基础控件展示 原创,包括了高德地图WEB版基础控件展示 原创的使用技巧和注意事项,需要的朋友参考一下 之前想自己做一个旅游导航的项目,在网上一搜发现了高德地图开放平台,发现原来高德可以很简单的就应用到自己的项目里面,当即我就申请了一个key来学一学,仔细研究了一下,感觉还挺难的,网上找了找案例什么的,经过这几天,小编把高德的一些基础控件差不多弄了一下,效果图如下图所示
我正在使用泰坦尼克号数据集。为了可视化数据分布,我使用seaborn绘图方法。但我无法理解的参数及其最终输出。我想知道下面几行中使用的参数(参数)的用法,特别是和和的用法。 我已经在留档中搜索了并上网,但没有写清楚。
开发的时候没问题,但是部署到Linux系统后使用vue和地图,然后正常直接打开地图的话没问题,但是弹窗就显示不出来地图一片空白
设置了气泡背景bgColor的透明度,在开发者工具显示正常,手机上显示为黑色了,好像透明度没管用
高德地图使用的原生,突然之间加载不出来是为什么?做了一下marker标记,然后就加载不出来,回退代码之后还是加载不出来。有做过原生高德地图的朋友吗?麻烦指导一下,谢谢。我要的效果很简单,就是在地图上标记设备位置,然后在标记上绑定一个点击事件,点击获取在线设备的状态。 另外有做过物联网的哥们吗?就是这个获取设备状态信息是服务端做还是前端做的?
我要做一个类似微信分享位置的功能,不知道高德地图可以实现这种功能吗?