haoxinlei 7 anos atrás
pai
commit
e62858e2fe
2 arquivos alterados com 72 adições e 6 exclusões
  1. 67 1
      README.md
  2. 5 5
      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 {};
+}

+ 5 - 5
index.js

@@ -295,22 +295,22 @@ function getRegionPointsSelector(circles, lineAndMarkers, polygonAndMarkers) {
     );
 }
 
-function getLines(lineAndMarker){
+function getLines(lineAndMarker) {
     return lineAndMarker.lines;
 }
 
-function getLineSelector(lineAndMarker){
+function getLineSelector(lineAndMarker) {
     return createSelector(
         lineAndMarker,
         getLines
     );
 }
 
-function getPolygons(polygonAndMarkers){
+function getPolygons(polygonAndMarkers) {
     return polygonAndMarkers.polygons;
 }
 
-function getPolygonSelector(polygonAndMarkers){
+function getPolygonSelector(polygonAndMarkers) {
     return createSelector(
         polygonAndMarkers,
         getPolygons
@@ -352,4 +352,4 @@ export function getShapes(airspaceInfos, setStyle, currentAirspaceIndex) {
         polygons,
         regionPoints
     }
-}
+}