README.md 2.3 KB

根据 plan-request 产生 amap 的图形

//获取selector
export function getShapesSelector(airspaceInfos, setStyle, currentAirspaceIndex) {
    currentAirspaceIndex = currentAirspaceIndex ? currentAirspaceIndex : () => -1;
    let circles = getCircleSelector(airspaceInfos, setStyle, currentAirspaceIndex);
    let lineAndMarkers = getLineAndMarkerSelector(airspaceInfos, setStyle, currentAirspaceIndex);
    let lines = getLineSelector(lineAndMarkers);
    let polygonAndMarkers = getPolygonAndMarkerSelector(airspaceInfos, setStyle, currentAirspaceIndex);
    let polygons = getPolygonSelector(polygonAndMarkers);
    let markers = getMarkerSelector(polygonAndMarkers, lineAndMarkers);
    let regionPoints = getRegionPointsSelector(circles, lineAndMarkers, polygonAndMarkers);
    return {
        markers,
        circles,
        lines,
        polygons,
        regionPoints
    }
}
//获取数组
export function getShapes(airspaceInfos, setStyle, currentAirspaceIndex) {
    currentAirspaceIndex = currentAirspaceIndex ? currentAirspaceIndex : () => -1;
    let circles = getCircles(airspaceInfos, setStyle, currentAirspaceIndex);
    let lineAndMarkers = getLinesAndMarkers(airspaceInfos, setStyle, currentAirspaceIndex);
    let lines = getLines(lineAndMarkers);
    let polygonAndMarkers = getPolygonsAndMarkers(airspaceInfos, setStyle, currentAirspaceIndex);
    let polygons = getPolygons(getPolygonsAndMarkers);
    let markers = getMarkers(polygonAndMarkers, lineAndMarkers);
    let regionPoints = getRegionPoints(circles, lineAndMarkers, polygonAndMarkers);
    return {
        markers,
        circles,
        lines,
        polygons,
        regionPoints
    }
}


//其中currentAirspaceIndex没有可以不传,setStyle为方法,需要为每个shape设置样式,实例如下:

function setStyle(shapeName) {
    if ('circle' === shapeName) {
        return {
            lineWidth:2,
            strokeColor:'#123',
            fillColor:'#123'
        }
    }
    if ('line' === shapeName) {
        return {
            lineWidth:2,
            strokeColor:'#123',
            imageName:'BA_oval'   //  marker's name
        }
    }
    if ('polygon' === shapeName) {
        return {
            lineWidth:2,
            strokeColor:'#123',
            fillColor:'#123',
            imageName:'BA_oval'  //  marker's name
        }
    }
    return {};
}