import * as maptalks from "../../libs/maptalks";
import EasyLayer from "./EasyLayer";
import axios from "../../libs/axios/axios";
import Tool from "../tool/index";
/**
* 路况图层类
*/
class EasyRoadLayer extends EasyLayer {
/**
* 构造函数
* @constructor
* @param {Object} options 图层配置项
*/
constructor(options) {
super();
this.layer = new maptalks.VectorLayer("road_layer", options);
this.getRoadData();
}
/**
*获取(更新)当前路况数据
*
* @memberof EasyRoadLayer
*/
getRoadData() {
axios
.get("../src/ext/layer/geoJson_demo.json")
.then((response) => {
let lineArr = new Tool().createFeatureFromGeoJson(
response.data.data
);
this.addGeometry(lineArr);
for (let i = 0; i < lineArr.length; i++) {
if (lineArr[i].type === "LineString") {
lineArr[i]._geometry.properties.cunt = i;
this.layer.setStyle({
filter: ["==", "cunt", i],
symbol: this.getSymbol(
lineArr[i]._geometry.properties
),
});
}
}
})
.catch((error) => {
console.log(error);
});
}
/**
*处理线样式
*
* @param {*} properties
* @return {*}
* @memberof EasyRoadLayer
*/
getSymbol(properties) {
return [
{
lineColor: properties.stroke,
lineWidth: properties.strokeWidth,
lineOpacity: properties.strokeOpacity,
},
];
}
}
export default EasyRoadLayer;