Skip to main content

Show vehicle moving in google map angular 6


In this tutorial we will learn about how to show your vehicle moving on map.

Below are the prerequisite 


If you followed above two tutorials you have added waypoints and also set direction in the map.

Now we just need to set our vehicle live location.

make changes in your app.component.ts or any file in which you have made your map changes.


app.component.ts

import { Component } from '@angular/core';
import { interval } from 'rxjs';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css'],
})
export class AppComponent {
  title = 'Google Map';
  lat = 51.678418;
  lng = 7.809007;
  public origin: { lat: 51.673858, lng: 7.815982 };
  public destination: { lat: 51.723858, lng: 7.895982 };
  timerSubscription: any;
  currentLat: any;
  currentLng: any;
  
  icon = {
    url: ('../../assets/icons/bus.svg'),
    scaledSize: {
      height: 60,
      width: 60
    }
  };
  waypoints = [
    {
      location: { lat: 51.673858, lng: 7.815982 },
      stopover: true
    },
    {
      location: { lat: 51.373858, lng: 7.215982 },
      stopover: true
    },
    {
      location: { lat: 51.723858, lng: 7.895982 },
      stopover: true
    }
  ];

  constructor(private httpClient: HttpClient) {

    //Timer to fetch data on an interval

    this.timerSubscription = interval(1000)
      .subscribe(() => this.getCurrentLocationOfVehicle());
  }

  getCurrentLocationOfVehicle() {

    const requestMap: any = {};
    requestMap.userName = 'userName';
    requestMap.password = 'password';
    // replace it with your feed URL 
    requestMap.gpsTrackUrl = 'http://tracking/url/';

    this.getCurrentLatLong(requestMap).subscribe(data => {
      //set current lat lng of vehicle
      this.currentLat = data.lat;
      this.currentLng = data.long;
    },
      err => console.log('error in fetching data' + err),
      () => console.log('done')
    );
  }
  getCurrentLatLong(trackData): any {
    return this.httpClient.post('trackUrl', trackData);
  }

}


make changes in your app.component.html or any file in which you have made your map changes.

app.component.html 
<agm-map [latitude]="lat" [longitude]="lng">

<agm-direction 
  [origin]="origin" 
  [destination]="destination"
  [waypoints]="waypoints"
  [travelMode]="'DRIVING'">
</agm-direction>
   
<!-- Show live location of vehicle -->
<agm-marker 
  [latitude]="currentLat" 
  [longitude]="currentLng" 
  [iconUrl]="icon">
</agm-marker>
</agm-map>



This will show your vehicle moving in the desired direction.


let me know in comments if you face any issue.





Comments

Popular posts from this blog

Extent report plugin for cucumber framework

Extent Reports  are the most popular  reporting  used with Selenium. ExtentReport API makes our life easy to generate interactive  report  with simple configuartions. It supports almost all Java and .NET test frameworks such as TestNG , JUnit , NUnit etc Here we are discussing about  a plugin which is build on  Extent Report specially for Cucumber. This plugin is used to simple out the implementation of  Extent Report  in  Cucumber Framework .  We are creating a maven project to implement the integration of our plugin with cucumber 1. Create new maven project in any tool eclipse/sts/intellij 2. Open pom.xml and update below entries. Step 1 : Add Cucumber Extent Reporter library to Maven Project Add  cucumber-extentsreport <dependency>      <groupId> com.vimalselvam </groupId>      <artifactId> cucumber-extentsreport </artif...

java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.

  In order to make projects compile with the existing builds of Lombok processor, as a workaround you can use the flag -Djps.track.ap.dependencies=false which should be added to File | Settings | Build, Execution, Deployment | Compiler | Build process VM options field. This will disable collection of dependencies specified by an annotation processor when Filer methods are called

Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.2.3.RELEASE:repackage failed: Unable to find main class

Solutions:  Solution 1 : You needed to change the packaging parameter to jar from pom. Also, the repositories , pluginRepositories , the maven-compiler-plugin and the spring-boot-maven-plugin's version and executions weren't needed. Solution 2:  Try mvn install and see if it works Solution 3: Preview: <properties> <!-- The main class to start by executing java -jar --> <start-class> com.mycorp.starter.HelloWorldApplication </start-class> </properties> Solution 4: Enable the main() method in your Application.java. Configure spring-boot-maven-plugin to specify the class with the main class (Spring should find it anyway if you have one, but good to be explicit): Preview: <plugin> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-maven-plugin </artifactId> <version> ${spring-boot-version} </version>...