|
|
@@ -26,35 +26,39 @@ function getDefaultStyle() {
|
|
|
return {imageName, lineWidth, strokeColor, fillColor}
|
|
|
}
|
|
|
|
|
|
-function getCircles(airspaceInfos, setStyle, currentAirspaceIndex) {
|
|
|
+function getCirclesAndMarkers(airspaceInfos, setStyle, currentAirspaceIndex) {
|
|
|
let circles = [];
|
|
|
+ let markers = [];
|
|
|
if (!Array.isArray(airspaceInfos)) {
|
|
|
- return circles;
|
|
|
+ return {circles, markers};
|
|
|
}
|
|
|
|
|
|
- let {lineWidth, strokeColor, fillColor} = getDefaultStyle()
|
|
|
+ let {imageName, lineWidth, strokeColor, fillColor} = getDefaultStyle()
|
|
|
+
|
|
|
//通过该方法获取样式
|
|
|
let circleStyle = setStyle('circle');
|
|
|
if(circleStyle) {
|
|
|
lineWidth = circleStyle.lineWidth
|
|
|
strokeColor = circleStyle.strokeColor
|
|
|
fillColor = circleStyle.fillColor
|
|
|
+ imageName = circleStyle.imageName
|
|
|
}
|
|
|
|
|
|
|
|
|
for (let i = 0; i < airspaceInfos.length; i++) {
|
|
|
let tmpCircle = airspaceInfos[i]
|
|
|
- let airspaceTypeFix, radiusFix
|
|
|
+ let airspaceTypeFix, radiusFix, dataType
|
|
|
if (tmpCircle.airspaceType) {
|
|
|
airspaceTypeFix = 'airspaceType';
|
|
|
radiusFix = 'radius'
|
|
|
+ dataType = 1
|
|
|
} else {
|
|
|
airspaceTypeFix = 'airspace_type';
|
|
|
radiusFix = 'radius_of_flying'
|
|
|
+ dataType = 2
|
|
|
}
|
|
|
|
|
|
if (tmpCircle[airspaceTypeFix] == Global.airspaceType.circle && currentAirspaceIndex != i) {
|
|
|
-
|
|
|
let coordinate = {};
|
|
|
if (tmpCircle.center_point_of_flying) {
|
|
|
coordinate.latitude = tmpCircle.center_point_of_flying.lat;
|
|
|
@@ -65,20 +69,25 @@ function getCircles(airspaceInfos, setStyle, currentAirspaceIndex) {
|
|
|
}
|
|
|
|
|
|
let radius = tmpCircle[radiusFix];
|
|
|
- let circle = {lineWidth, strokeColor, fillColor, radius, coordinate}
|
|
|
- circles.push(circle);
|
|
|
+
|
|
|
+ if(radius) {
|
|
|
+ let circle = {lineWidth, strokeColor, fillColor, radius, coordinate}
|
|
|
+ circles.push(circle);
|
|
|
+ } else {
|
|
|
+ markers.push(addOvalPointConfig(coordinate.latitude, coordinate.longitude, imageName, dataType));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return circles;
|
|
|
+ return {circles, markers};
|
|
|
}
|
|
|
|
|
|
-function getCircleSelector(airspaceInfos, setStyle, currentAirspaceIndex) {
|
|
|
+function getCircleAndMarkerSelector(airspaceInfos, setStyle, currentAirspaceIndex) {
|
|
|
return createSelector(
|
|
|
airspaceInfos,
|
|
|
() => setStyle,
|
|
|
currentAirspaceIndex,
|
|
|
- getCircles
|
|
|
+ getCirclesAndMarkers
|
|
|
);
|
|
|
}
|
|
|
|
|
|
@@ -430,10 +439,13 @@ function getPolygonAndMarkerSelector(airspaceInfos, setStyle, currentAirspaceInd
|
|
|
);
|
|
|
}
|
|
|
|
|
|
-function getMarkers(polygonAndMarkers, lineAndMarkers) {
|
|
|
+function getMarkers(circlesAndMarkers, polygonAndMarkers, lineAndMarkers) {
|
|
|
let markers = [];
|
|
|
+ if (circlesAndMarkers) {
|
|
|
+ markers = [...circlesAndMarkers.markers]
|
|
|
+ }
|
|
|
if (polygonAndMarkers) {
|
|
|
- markers = [...polygonAndMarkers.markers]
|
|
|
+ markers = [...markers, ...polygonAndMarkers.markers]
|
|
|
}
|
|
|
if (lineAndMarkers) {
|
|
|
markers = [...markers, ...lineAndMarkers.markers]
|
|
|
@@ -441,8 +453,9 @@ function getMarkers(polygonAndMarkers, lineAndMarkers) {
|
|
|
return markers
|
|
|
}
|
|
|
|
|
|
-function getMarkerSelector(polygonAndMarkers, lineAndMarkers) {
|
|
|
+function getMarkerSelector(circlesAndMarkers, polygonAndMarkers, lineAndMarkers) {
|
|
|
return createSelector(
|
|
|
+ circlesAndMarkers,
|
|
|
polygonAndMarkers,
|
|
|
lineAndMarkers,
|
|
|
getMarkers
|
|
|
@@ -478,6 +491,17 @@ function getRegionPointsSelector(circles, lineAndMarkers, polygonAndMarkers) {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+function getCircles(circleAndMarker) {
|
|
|
+ return circleAndMarker.circles;
|
|
|
+}
|
|
|
+
|
|
|
+function getCircleSelector(circleAndMarker) {
|
|
|
+ return createSelector(
|
|
|
+ circleAndMarker,
|
|
|
+ getCircles
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
function getLines(lineAndMarker) {
|
|
|
return lineAndMarker.lines;
|
|
|
}
|
|
|
@@ -511,12 +535,13 @@ let setStyle = (style) => {
|
|
|
//获取selector
|
|
|
export function getShapesSelector(airspaceInfos, style, currentAirspaceIndex) {
|
|
|
currentAirspaceIndex = currentAirspaceIndex ? currentAirspaceIndex : () => -1;
|
|
|
- let circles = getCircleSelector(airspaceInfos, setStyle(style), currentAirspaceIndex);
|
|
|
+ let circlesAndMarkers = getCircleAndMarkerSelector(airspaceInfos, setStyle(style), currentAirspaceIndex);
|
|
|
+ let circles = getCircleSelector(circlesAndMarkers);
|
|
|
let linePolygonsAndMarkers = getLinePolygonsAndMarkerSelector(airspaceInfos, setStyle(style), currentAirspaceIndex);
|
|
|
let lines = getLineSelector(linePolygonsAndMarkers);
|
|
|
let polygonAndMarkers = getPolygonAndMarkerSelector(airspaceInfos, setStyle(style), currentAirspaceIndex);
|
|
|
let polygons = getPolygonSelector(polygonAndMarkers, linePolygonsAndMarkers);
|
|
|
- let markers = getMarkerSelector(polygonAndMarkers, linePolygonsAndMarkers);
|
|
|
+ let markers = getMarkerSelector(circlesAndMarkers, polygonAndMarkers, linePolygonsAndMarkers);
|
|
|
let regionPoints = getRegionPointsSelector(circles, linePolygonsAndMarkers, polygonAndMarkers);
|
|
|
return {
|
|
|
markers,
|