Эх сурвалжийг харах

Merge branch 'init' into 'master'

Init

See merge request BA/amap-shapes-generator!2
wd 7 жил өмнө
parent
commit
ec983e1087
2 өөрчлөгдсөн 99 нэмэгдсэн , 7 устгасан
  1. 67 1
      README.md
  2. 32 6
      index.js

+ 67 - 1
README.md

@@ -1 +1,67 @@
-根据 plan-request 产生 amap 的图形
+根据 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 {};
+}

+ 32 - 6
index.js

@@ -295,19 +295,43 @@ function getRegionPointsSelector(circles, lineAndMarkers, polygonAndMarkers) {
     );
 }
 
+function getLines(lineAndMarker) {
+    return lineAndMarker.lines;
+}
+
+function getLineSelector(lineAndMarker) {
+    return createSelector(
+        lineAndMarker,
+        getLines
+    );
+}
+
+function getPolygons(polygonAndMarkers) {
+    return polygonAndMarkers.polygons;
+}
+
+function getPolygonSelector(polygonAndMarkers) {
+    return createSelector(
+        polygonAndMarkers,
+        getPolygons
+    );
+}
+
 //获取selector
-export function getShapesSelect(airspaceInfos, setStyle, currentAirspaceIndex) {
+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,
-        lineAndMarkers,
-        polygonAndMarkers,
+        lines,
+        polygons,
         regionPoints
     }
 }
@@ -316,14 +340,16 @@ 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,
-        lineAndMarkers,
-        polygonAndMarkers,
+        lines,
+        polygons,
         regionPoints
     }
-}
+}