From ae2226d54b8f977ed0467d9f7d6def7502594af1 Mon Sep 17 00:00:00 2001
From: Roberto Callari <robertocallari89@gmail.com>
Date: Tue, 15 Jun 2021 10:14:03 +0200
Subject: [PATCH] leaflet-awesome marker

---
 angular.json                                  |  3 +-
 package-lock.json                             | 17 ++++-
 package.json                                  |  2 +
 .../messina/service/messina-client.service.ts |  2 +-
 .../messina/traffic/traffic.component.ts      | 64 ++++++++++++++-----
 5 files changed, 67 insertions(+), 21 deletions(-)

diff --git a/angular.json b/angular.json
index 87de3191..1bbc97f4 100644
--- a/angular.json
+++ b/angular.json
@@ -44,7 +44,8 @@
               "node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.carousel.min.css",
               "node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.theme.default.min.css",
               "src/app/@theme/styles/styles.scss",
-              "node_modules/leaflet-timedimension/dist/leaflet.timedimension.control.css"
+              "node_modules/leaflet-timedimension/dist/leaflet.timedimension.control.css",
+              "node_modules/leaflet.awesome-markers/dist/leaflet.awesome-markers.css"
             ],
             "scripts": [
               "node_modules/pace-js/pace.min.js",
diff --git a/package-lock.json b/package-lock.json
index 512bbba7..12cffbd6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3135,8 +3135,7 @@
     "@types/geojson": {
       "version": "7946.0.1",
       "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.1.tgz",
-      "integrity": "sha512-BXY6tH16Snp/ZdX6cFlBD8yfEArcZemzxEGciXkMmp1/tU76oyqkxJq91JQzT8SXWzRPwj//dw0/FdCSnnT8mw==",
-      "dev": true
+      "integrity": "sha512-BXY6tH16Snp/ZdX6cFlBD8yfEArcZemzxEGciXkMmp1/tU76oyqkxJq91JQzT8SXWzRPwj//dw0/FdCSnnT8mw=="
     },
     "@types/glob": {
       "version": "7.1.3",
@@ -3177,11 +3176,18 @@
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.2.3.tgz",
       "integrity": "sha512-ancdZhtqOp64/ZXuvKuadFCUmXDhRDGiBSqM6MhARk4kET9UKAdkWY76hn0VlwvknmynMB8wbDMJSGXYRbQFEg==",
-      "dev": true,
       "requires": {
         "@types/geojson": "*"
       }
     },
+    "@types/leaflet.awesome-markers": {
+      "version": "2.0.24",
+      "resolved": "https://registry.npmjs.org/@types/leaflet.awesome-markers/-/leaflet.awesome-markers-2.0.24.tgz",
+      "integrity": "sha512-Pj2cxvKl8OL9UYGneCrc7r7vC0neAwOnqTBMLr0S/zP5IimwBku4439WBIhvIiLm6zTf65XuoQ7FYDZsXnnxrA==",
+      "requires": {
+        "@types/leaflet": "*"
+      }
+    },
     "@types/marked": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/@types/marked/-/marked-2.0.2.tgz",
@@ -12290,6 +12296,11 @@
         "leaflet": "~0.7.4 || ~1"
       }
     },
+    "leaflet.awesome-markers": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/leaflet.awesome-markers/-/leaflet.awesome-markers-2.0.5.tgz",
+      "integrity": "sha512-Ne/xDjkGyaujwNVVkv2tyXQUV0ZW7gZ0Mo0FuQY4jp2qWrvXi0hwDBvmZyF/8YOvybyMabTMM/mFWCTd1jZIQA=="
+    },
     "less": {
       "version": "3.12.2",
       "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz",
diff --git a/package.json b/package.json
index 46ffa936..c001929f 100644
--- a/package.json
+++ b/package.json
@@ -56,6 +56,7 @@
     "@ngx-translate/core": "^13.0.0",
     "@ngx-translate/http-loader": "^6.0.0",
     "@swimlane/ngx-charts": "^14.0.0",
+    "@types/leaflet.awesome-markers": "^2.0.24",
     "angular2-chartjs": "0.4.1",
     "bootstrap": "4.3.1",
     "chart.js": "2.7.1",
@@ -69,6 +70,7 @@
     "iso8601-js-period": "^0.2.1",
     "leaflet": "1.2.0",
     "leaflet-timedimension": "^1.1.1",
+    "leaflet.awesome-markers": "^2.0.5",
     "nebular-icons": "1.1.0",
     "ng2-ckeditor": "^1.2.9",
     "ng2-smart-table": "^1.6.0",
diff --git a/src/app/pages/messina/service/messina-client.service.ts b/src/app/pages/messina/service/messina-client.service.ts
index 19438e65..8afc69f8 100644
--- a/src/app/pages/messina/service/messina-client.service.ts
+++ b/src/app/pages/messina/service/messina-client.service.ts
@@ -27,7 +27,7 @@ export class MessinaClientService {
   }
 
   getStops(page:number=0,pageSize:number=20000): Observable<any> {
-    return this.http.get<any>(`${this.apiURL}/api/v1/data/atmStops?page=${page}&pageSize=${pageSize}&format=geojson&token=${this.token}`);
+    return this.http.get<any>(`${this.apiURL}/api/v1/data/atmStops?page=${page}&pageSize=${pageSize}&format=geojson&token=${this.token}&filter=${JSON.stringify({"mainStop":true})}`);
   }
 
 }
diff --git a/src/app/pages/messina/traffic/traffic.component.ts b/src/app/pages/messina/traffic/traffic.component.ts
index 437ee6da..22fe5625 100644
--- a/src/app/pages/messina/traffic/traffic.component.ts
+++ b/src/app/pages/messina/traffic/traffic.component.ts
@@ -3,6 +3,7 @@ import { color } from 'd3-color';
 
 import * as L from 'leaflet';
 import 'leaflet-timedimension';
+import 'leaflet.awesome-markers';
 import { MessinaClientService } from '../service/messina-client.service';
 
 @Component({
@@ -39,6 +40,8 @@ export class TrafficComponent implements OnInit {
   loading=true;
   ngOnInit(): void {
 
+    L.AwesomeMarkers.Icon.prototype.options.prefix = 'fa';
+
     this.geojson = {
       "type":"FeatureCollection",
       "features":[]
@@ -62,8 +65,8 @@ export class TrafficComponent implements OnInit {
     this.messinaClient.getTrafficByDateTime(null,null).subscribe(res => {
       this.trafficMapConverter(res);
       this.loading=false;
-      // this.displayStops();
-      // this.displayPOIs();
+      //this.displayStops();
+      //this.displayPOIs();
     })
   }
 
@@ -71,13 +74,16 @@ export class TrafficComponent implements OnInit {
     this.messinaClient.getStops().subscribe(res => {
       let stopLayer = L.geoJSON(res['results'], {
         pointToLayer: (feature, latlng) => {
-          let icon= new L.Icon({
-            iconSize: [24,36],
-            iconAnchor: [12,36],
-            iconUrl: '/assets/img/markers/marker-icon.png',
-            shadowUrl: '/assets/img/markers/marker-shadow.png'
-          })
-          return L.marker(latlng,{icon:icon})
+
+          let markerIcon = L.AwesomeMarkers.icon({
+            markerColor: 'blue',
+            prefix: 'fa',
+            extraClasses: 'fas',
+            icon: "bus",
+            iconColor: "white",
+          });
+
+          return L.marker(latlng,{icon:markerIcon})
         }
       });
       this.layers.push(stopLayer);
@@ -88,13 +94,16 @@ export class TrafficComponent implements OnInit {
     this.messinaClient.getPOI().subscribe(res => {
       let stopLayer = L.geoJSON(res['results'], {
         pointToLayer: (feature, latlng) => {
-          let icon= new L.Icon({
-            iconSize: [24,36],
-            iconAnchor: [12,36],
-            iconUrl: '/assets/img/markers/marker-icon.png',
-            shadowUrl: '/assets/img/markers/marker-shadow.png'
-          })
-          return L.marker(latlng,{icon:icon})
+
+          let markerIcon = L.AwesomeMarkers.icon({
+            markerColor: 'blue',
+            prefix: 'fa',
+            extraClasses: 'fas',
+            icon: "map-marker",
+            iconColor: "white",
+          });
+
+          return L.marker(latlng,{icon:markerIcon})
         }
       });
       this.layers.push(stopLayer);
@@ -157,6 +166,29 @@ export class TrafficComponent implements OnInit {
       style:(feature)=>{
         let v=feature.properties[this.instant];
         let color='green';
+
+        if (v>0 && v<1) {
+          color = '#009688';
+        } else if (v>=1 && v<2) {
+          color = '#4caf50';
+        } else if (v>=2 && v<3) {
+          color = '#8bc34a';
+        } else if (v>=3 && v<4) {
+          color = '#cddc39';
+        } else if (v>=4 && v<5) {
+          color = '#ffeb3b';
+        } else if (v>=5 && v<6) {
+          color = '#ffc107';
+        } else if (v>=6 && v<7) {
+          color = '#ff9800';
+        } else if (v>=7 && v<8) {
+          color = '#ff5722';
+        } else if (v>=8 && v<9) {
+          color = '#f44336';
+        } else if (v>9) {
+          color = '#970e0e';
+        }
+
         // if(v>=2.5 && v<5){
         //   color='yellow'
         // }else if(v>=5 && v<7.5){
-- 
GitLab