浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
WebGIS
/
问题详情
使用Vue组件库后该如何写代码来实现一些功能
xposeder
2EXP
2021年12月09日
使用产品:iclient vue组件库 操作系统:win10 x64
数据类型: shp
问题详细描述:我使用了官方提供的Vue组件库,用起来确实很方便。但是我不清楚该如何用代码实现一些功能了,就比如官方组件中的打开文件组件,用它可以加载shp文件,但是请问该如何写代码来加载shp图层呢?我没有看到相关示例,在api中也并没有收获,谢谢!
javascript
iclient
请
登录
或者
注册
后回答这个问题。
1个回答
您好,您可以参考这个示例:
打开文件组件 (supermap.io)
,这个示例可以实现打开shp文件
匡小娟
3,148EXP
2021年12月09日
谢谢您的回复,不过这个示例是演示了如何调用打开文件这个组件,而我的想法是用代码来加载shp图层,也就是一打开网页就能看到加载的shp图层,而并非在页面加载后再点击按钮来加载图层,请问这该怎么实现呢?另外,我想知道怎么在这个组件库中获取mapbox的map实例,谢谢!
我找到了一种实现获取mapbox的map实例的方法,我把代码放在下面了,写在mounted里,不过这种方法显然很不规范,因为如果不用settimeout直接获取mapbox的map实例的话会提示undefined,我试过用vue中的nexttick方法也是无效的,目前能用的方法就是等个几秒钟才行。并且这个时间还是难以预测的,往往首次加载还会失败,希望能告知一个稳定的方法,谢谢!
let that = this
setTimeout(() => {
that.map = that.$children[0].map
let map = that.map
addData('/static/xx.json', 'xx')
function addData(source, sourcename) {
//加载source数据源
map.addSource(sourcename, {
"type": "geojson",
"data": source
});
map.addLayer({
name: '1',
id: 'measure-points',
'type': 'fill',
source: sourcename,
'paint': {
'fill-color': '#0080ff', // blue color fill
'fill-opacity': 0.2
}
})
//外边框
map.addLayer({
'id': 'outline',
'type': 'line',
'source': sourcename,
'layout': {},
'paint': {
'line-color': '#000',
'line-width': 0.5
}
});
}
}, 3000);
Vue-iClient-MapboxGL中该如何获取map实例
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
建完模发布了,想实现一些功能该如何下手
如何用代码实现多重缓冲区,怎么更改value
如何用代码实现多重缓冲区,怎么更改value
使用cdn方式导入vue,webgl,组件。如何在app.vue写功能?
Vue-iClient-MapboxGL中该如何获取map实例
超图FAQ:请教一下,项目现场用倾斜摄影生产DSM,观察屏幕有模型再运动,任务管理器磁盘和gpu均有活动,周末跑了两天回来后发现磁盘无读写iDesktopx11i的场景页面也无变化了,请问该如何查看任务进展情况,或者该如何使生产继续下去
超图FAQ:请教一下,基于Mapboxgl开发,实现点击要素高亮显示,发现数据集有公共边的情况下,高亮显示有问题,该如何解决?
超图FAQ:SuperMap iClient JavaScript 11i(2024) 的各地图基础库所支持的主要功能和服务有哪些?
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...