【Vue+Mapbox】Vue中mapbox地图的使用(二)—— 自定义Geojson地图数据
既然是使用mapbox,那么首先需要创建一个地图容器,但是由于我们不使用mapbox底图,因此,与普通创建mapbox地图的区别在于。很多时候,我们在使用地图的时候,用的并不是mapbox提供的底图,而是我们自己的数据。...
·
很多时候,我们在使用地图的时候,用的并不是mapbox提供的底图,而是我们自己的数据。
这里以Geojson(json)数据为例。
STEP 1 (数据定义)
将自己的数据加载,同时赋予名称。
import CHINAMAP from '@/assets/mapdata/china.json'
STEP 2 (创建空地图容器)
既然是使用mapbox,那么首先需要创建一个地图容器,但是由于我们不使用mapbox底图,因此,与普通创建mapbox地图的区别在于style,这一参数的定义。
(其余配置参考系列文章一)
var map = new this.$mapboxgl.Map({
container: "map",
style: {
version: 8,
sources: {},
layers: [
{
id: "background",
type: "background",
layout: {},
paint: {
"background-color": [
"interpolate",
["linear"],
["zoom"],
5,
"hsl(38, 43%, 89%)",
7,
"hsl(38, 48%, 86%)",
],
},
},
],
},
zoom: 5,
center: [109, 38],
});
STEP 3 (加载数据)
mapbox中加载资源所使用,map.on(){'load',}函数。
首先加载资源,再加载图层,即可。
map.on('load',function(){
map.addSource('states', {
'type': 'geojson',
'data': CHINAMAP
});
map.addLayer({
'id': 'china_map',
'type': 'fill',
'source': 'states',
'paint': {
'fill-color':'#0080ff',
'fill-outline-color': '#4f4f4f',
'fill-opacity':[
'case',
['boolean', ['feature-state', 'hover'], false],
1,
0.8
]
}
});
})
结果展示:
更多推荐
已为社区贡献5条内容
所有评论(0)