高德可视化Loca.PolygonLayer不显示顶面

高德可视化Loca.PolygonLayer不显示顶面

按照示例和官方配置文档写,最终效果很奇怪
代码如下

const geo = formatGeo(data, 'polygon')
var pl = new Loca.PolygonLayer({
    loca: myLoca,
    zIndex: 100,
    opacity: 0.8,
    visible: true,
    // cullface: 'none',
    // shininess: 10,
    hasSide: true,
    hasBottom: true,
});

pl.setSource(geo);
pl.setStyle({
    topColor: 'rgba(255,255,255,0.7)',
    sideTopColor: '#f99',
    sideBottomColor: '#66f',
    bottomColor: '#fff',
    height: 200000,
    altitude: 0,
    // 文字标注配置
    label: {
        text: {
            content: (index, feat) => feat.properties.areaName
        }
    },
})

在这里插入图片描述

高德数据接口获取的边界点位无法直接转换为geo

目前通过高德内置的方法获取的行政区边界只能用于高德地图map的方法中的path(二重数组,需要多次遍历create边界形成边界数组才能使用),不能用于高德可视化loca中,尤其是loca 2.x版本

推荐使用阿里云数据可视化的geojson源 目前是免费的,以后就不知道了

补充后记:
阿里云数据可视化的geojson源 有并发限制,暂未查到限制并发的时间和并发量具体是多少。但项目后端是遇到了调用接口返回403的状况,连带前端通过网页请求也出现403,被限流5-10分钟后恢复。

商用项目还是不能太依赖这个接口,实在要使用,则必须做缓存。

我们的做法是,一方面后端第一次请求后把数据存到数据库,后续接口直接从自己的数据库获取;另一方面,前端同时在终端缓存同一参数的geo数据,再次降低请求远程geo接口的次数。

前端方面框架使用的Vue3+pinia,持久化使用插件pinia-plugin-persistedstate,但该插件并不是最优解,因为LocalStorage内存有限,而geo数据量巨大,很容易有溢出的风险。

目前主流方案是使用IndexedDB作为储存空间,同样有轮子:插件传送门localForage

pinia-plugin-persistedstate 插件不支持 localForage 因为 localForage 是异步的,它只支持同步方法

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值