From 82c5c3e3c0825fe7ee8fa07c682f68bef9b0d1d6 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 15:50:36 +0100 Subject: [PATCH] add marker asset and make Marker call with dummy data for proof of concept --- projects/project-3/frontend/angular.json | 9 ++- .../project-3/frontend/src/app/app.module.ts | 4 +- .../frontend/src/app/map/map.component.ts | 1 + .../frontend/src/app/service/map.service.ts | 55 +++++++++++++++++- .../frontend/src/assets/bike-point.png | Bin 0 -> 33334 bytes .../frontend/src/environments/environment.ts | 3 +- 6 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 projects/project-3/frontend/src/assets/bike-point.png diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index 4e9d604..f8f4677 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -90,7 +90,12 @@ "karmaConfig": "karma.conf.js", "assets": [ "src/favicon.ico", - "src/assets" + "src/assets", + { + "glob": "**/*", + "input": "node_modules/leaflet/dist/images/", + "output": "./assets" + } ], "styles": [ "./node_modules/@angular/material/prebuilt-themes/purple-green.css", @@ -131,4 +136,4 @@ "cli": { "analytics": false } -} \ No newline at end of file +} diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index ad12c07..fb3ca8c 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -9,6 +9,7 @@ import {MatToolbarModule} from '@angular/material/toolbar'; import {FlexLayoutModule} from '@angular/flex-layout'; import {MatIconModule} from '@angular/material/icon'; import {MatButtonModule} from '@angular/material/button'; +import {HttpClientModule} from '@angular/common/http'; @NgModule({ declarations: [ @@ -22,7 +23,8 @@ import {MatButtonModule} from '@angular/material/button'; MatToolbarModule, MatIconModule, MatButtonModule, - FlexLayoutModule + FlexLayoutModule, + HttpClientModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index a3ac056..3cee918 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -14,6 +14,7 @@ export class MapComponent implements AfterViewInit { ngAfterViewInit(): void { this.service.initMap(); + this.service.makeStationsWithDummyData(); } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index e4388a9..3b468b4 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -1,5 +1,33 @@ -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; import * as L from 'leaflet'; +import {HttpClient} from '@angular/common/http'; +import {environment} from '../../environments/environment'; + +const dummyData = [ + { + id: 'BikePoints_1', + url: '/Place/BikePoints_1', + commonName: 'River Street , Clerkenwell', + placeType: 'BikePoint', + lat: 51.529163, + lon: -0.10997 + }, + { + id: 'BikePoints_2', + url: '/Place/BikePoints_2', + commonName: 'Phillimore Gardens, Kensington', + placeType: 'BikePoint', + lat: 51.499606, + lon: -0.197574 + } +]; + +const createIcon = L.icon({ + iconUrl: '../../assets/bike-point.png', + iconSize: [60, 60], + iconAnchor: [30, 60], + popupAnchor: [0, -53] +}); @Injectable({ providedIn: 'root' @@ -7,7 +35,8 @@ import * as L from 'leaflet'; export class MapService { private map; - constructor() { } + constructor(private client: HttpClient) { + } public initMap(): void { this.map = L.map('map').setView([51.509865, -0.118092], 13); @@ -17,4 +46,26 @@ export class MapService { maxZoom: 19 })); } + + public makeStationsWithDummyData(): void { + for (const station of dummyData) { + L.marker([station.lat, station.lon], {icon: createIcon}).addTo(this.map); + } + } + + public makeStationMarkers(): void { + this.fetchStationGeoData().then((data) => { + for (const station of data.features) { + const lat = station.geometry.coordinates[0]; + const lon = station.geometry.coordinates[1]; + L.marker([lon, lat]).addTo(this.map); + } + }).catch((error) => { + console.log('something went wrong: ' + JSON.stringify(error)); + }); + } + + private async fetchStationGeoData(): Promise { + return await this.client.get(environment.apiUrl).toPromise(); + } } diff --git a/projects/project-3/frontend/src/assets/bike-point.png b/projects/project-3/frontend/src/assets/bike-point.png new file mode 100644 index 0000000000000000000000000000000000000000..94ba92fa765126c145916123be8226dc8b96c1f5 GIT binary patch literal 33334 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