PS: 为了简洁易懂,代码做了简化不能直接运行!
1. 点图层
import pois from '../../data/POIs.json'
let leafletMap = new L.Map('leafletMap');
let myicon =new L.icon({
iconUrl: "data:image/svg+xml," + encodeURIComponent(icons.default.location),
iconSize:[24,24],
iconAnchor:[12,12],
})
let geo = new L.geoJSON(pois, {
pointToLayer: function(geoJsonPoint, latlng) {
return L.marker(latlng,{icon:myicon});
}
})
var fg = new L.featureGroup();
geo.addTo(fg)
fg.addTo(leafletMap);
2. 线图层
import lines from '../../data/MultiLine.json'
let geo = new L.geoJSON(lines, {
style: function (geoJsonFeature) {
console.log(geoJsonFeature);
return {
color:"#eeeeee",
weight:5,
}
}
})
var fg = new L.featureGroup();
geo.addTo(fg)
fg.addTo(leafletMap);
3. 面图层
import ploygons from '../../data/MultiPloygon.json'
let geo = new L.geoJSON(ploygons, {
style: function (geoJsonFeature) {
return {
color:"red",
weight:5,
}
}
})
var fg = new L.featureGroup();
geo.addTo(fg)
fg.addTo(leafletMap);
总结:L.geoJSON 可以直接加载点线面的数据,不同之处在点图层的样式函数为 pointToLayer,线图层与面图层可以直接使用 options 可配置项中的内容!
ps:options 可配项如下表: