How To Draw A Map On Google Maps
- Updated date April 13, 2020
- 518k
- 24
In this article you will learn how to draw and work with routes on the fly using the Google Maps API V3.
Introduction
This article volition aid you to solve the following problems:
- How to describe a route on the wing.
- How to delete a location from a route on the fly.
- How to swap the routes on Google Maps using an HTML table.
- How to summate route distance and time with respect to speed.
I have used waypoints to draw the routes. Please note that you can use a maximum of x locations at a time. In this article, I have made all necessary JavaScript code comments in the "googlemap.js" JavaScript file. So I am not explaining the JavaScript lawmaking. Please download the attachment for more details about code.
Procedure
Use the post-obit procedure to draw a route on the fly:
- Run the projection.
- Double-click on the start location on the Google map.
- Yous can choose the second location by double-clicking on another location on the map or drag the "B" icon to the second location.
- You can choose some other location by double-clicking on the map.
- Notice that when y'all click on the map, the table will automatically generate the latitude, longitude, distance and time.
- Toe calculate the fourth dimension, you lot demand to enter the speed in the TextBox.
Lawmaking
1. Initialize the map on folio load
- var directionsService = new google.maps.DirectionsService();
- var _mapPoints = new Array();
- var _directionsRenderer = '' ;
- function InitializeMap() {
- _directionsRenderer =new google.maps.DirectionsRenderer();
- var myOptions = {
- zoom: 6,
- center:new google.maps.LatLng(21.7679, 78.8718),
- mapTypeId: google.maps.MapTypeId.ROADMAP
- };
- var map = new google.maps.Map(document.getElementById( "dvMap" ), myOptions);
- _directionsRenderer.setMap(map);
- _directionsRenderer.setOptions({
- draggable:truthful
- });
- google.maps.event.addListener(map,"dblclick" , function (outcome) {
- if ($( "#txtAvgSpeed" ).val() == '' ) {
- alert("Please enter the Average Speed (km/60 minutes)." );
- $("#txtAvgSpeed" ).focus();
- return false ;
- }
- var _currentPoints = event.latLng;
- _mapPoints.push button(_currentPoints);
- getRoutePointsAndWaypoints();
- });
- google.maps.event.addListener(_directionsRenderer,'directions_changed' , function () {
- computeTotalDistanceforRoute(_directionsRenderer.directions);
- });
- }
2. Get the route points and waypoints
- function getRoutePointsAndWaypoints() {
- var _waypoints = new Array();
- if (_mapPoints.length > 2)
- {
- for ( var j = 1; j < _mapPoints.length - 1; j++) {
- var address = _mapPoints[j];
- if (address !== "" ) {
- _waypoints.button({
- location: address,
- stopover:true
- });
- }
- }
- drawRoute(_mapPoints[0], _mapPoints[_mapPoints.length - ane], _waypoints);
- }else if (_mapPoints.length > 1) {
- drawRoute(_mapPoints[_mapPoints.length - 2], _mapPoints[_mapPoints.length - i], _waypoints);
- }else {
- drawRoute(_mapPoints[_mapPoints.length - 1], _mapPoints[_mapPoints.length - 1], _waypoints);
- }
- }
3. Draw the route
The following function is used to describe the route.
- function drawRoute(originAddress, destinationAddress, _waypoints) {
- var _request = '' ;
- if (_waypoints.length > 0) {
- _request = {
- origin: originAddress,
- destination: destinationAddress,
- waypoints: _waypoints,
- optimizeWaypoints:true ,
- travelMode: google.maps.DirectionsTravelMode.DRIVING
- };
- }else {
- _request = {
- origin: originAddress,
- destination: destinationAddress,
- travelMode: google.maps.DirectionsTravelMode.DRIVING
- };
- }
- directionsService.road(_request,function (_response, _status) {
- if (_status == google.maps.DirectionsStatus.OK) {
- _directionsRenderer.setDirections(_response);
- }
- });
- }
How to delete a location from the route on the fly
-
If I desire to delete the Pune location grade the instance in a higher place then I click on the "Ten" image button to delete the location.
-
When you click on the "Ok" push button, the "Pune" or "B" location will be deleted.
Code
ane. The following is the lawmaking to delete the required location:
- function deleteLocation(trid) {
- if (ostend( "Are you certain want to delete this location?" ) == true ) {
- var _temPoint = new Assortment();
- for ( var w = 0; westward < _mapPoints.length; due west++) {
- if (trid != w + 1) {
- _temPoint.push(_mapPoints[due west]);
- }
- }
- _mapPoints =new Array();
- for ( var y = 0; y < _temPoint.length; y++) {
- _mapPoints.push button(_temPoint[y]);
- }
- getRoutePointsAndWaypoints();
- }else {
- return false ;
- }
- }
2. I take called the deleteLocation() method on image click on click event.
- htmlhtml = html + "<td manner=\"width: 60px;\"><img alt=\"DeleteLocation\" src=\"Images/Delete.jpg\" onclick=\"return deleteLocation(" + _htmlTrCount + ");\" /></td>" ;
How to swap the routes on Google map using HTML table
1. In the case above, I have created iii locations, they are Bombay, Pune, and Hyderabad.
2. Now I desire to swap the locations, in other words, my start locations will be Hyderabad, then Pune, so Mumbai.
3. Put the mouse on the third row of the table or the "Location Name: C" tabular array row then drag and driblet to the offset row, in other words the offset row or "Location Name: A".
iv. So my start location is "A", in other words, Hyderabad. Now the 2nd location volition exist Pune. Right at present it is showing Mumbai. Do the aforementioned for Bombay.
Code
ane. The post-obit code volition help yous to move the locations from the HTML table:
- part draganddrophtmltablerows() {
- var _tempPoints = new Array();
- $("#HtmlTable" ).tableDnD();
- $("#HtmlTable" ).tableDnD({
- onDrop:function (tabular array, row) {
- var rows = tabular array.tBodies[0].rows;
- for ( var q = 0; q < rows.length; q++) {
- _tempPoints.push button(_mapPoints[rows[q].id - 1]);
- }
- _mapPoints =new Assortment();
- for ( var y = 0; y < _tempPoints.length; y++) {
- _mapPoints.push(_tempPoints[y]);
- }
- getRoutePointsAndWaypoints();
- }
- });
2. I have used the Scripts/jquery.tablednd.js for this table swap.
Calculate route altitude and time with respect to speed
The following process will calculate the road distance and time with respect to speed.
one. When you create a location on the map, the distance and speed will automatically exist calculated.
ii. For speed, you need to enter the "Boilerplate Speed (km/hr)" in the text box.
Code
- function CreateHTMTable(_latlng, _distance) {
- var _Speed = $( "#txtAvgSpeed" ).val();
- var _Time = parseInt(((_distance / 1000) / _Speed) * lx);;
- if (_htmlTrCount - ane == 0) {
- _Time = 0;
- _distance = 0;
- }
- var html = '' ;
- var championship = new Assortment( "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "J" , "1000" , "L" , "1000" , "Due north" , "O" );
- html = html +"<tr id=\"" + _htmlTrCount + "\">" ;
- html = html +"<td manner=\"width: 80px;\">" + _htmlTrCount + "</td>" ;
- html = html +"<td style=\"width: 80px;\"><bridge id=\"Title_" + _htmlTrCount + "\">" + title[_htmlTrCount - 1] + "</span></td>" ;
- html = html +"<td manner=\"width: 100px;\"><span id=\"lat_" + _htmlTrCount + "\">" + parent.Cord(_latlng).split up( "," )[0].substring(one, 8) + "</span></td>" ;
- html = html +"<td style=\"width: 100px;\"><span id=\"lng_" + _htmlTrCount + "\">" + parent.Cord(_latlng).split( "," )[1].substring(1, 8) + "</span></td>" ;
- html = html +"<td mode=\"width: 100px;\"><span id=\"dir_" + _htmlTrCount + "\">" + _distance + "</span></td>" ;
- html = html +"<td style=\"width: 70px;\"><bridge id=\"time_" + _htmlTrCount + "\">" + _Time + "</span></td>" ;
- html = html +"<td style=\"width: 60px;\"><img alt=\"DeleteLocation\" src=\"Images/Delete.jpg\" onclick=\"render deleteLocation(" + _htmlTrCount + ");\" /></td>" ;
- html = html +"</tr>" ;
- $("#HtmlTable" ).append(html);
- draganddrophtmltablerows();
- }
The post-obit lawmaking volition help you to calculate distance and speed.
NOTE:
- Equally I already mentioned at the top of this article, I have used the waypoints to plot the route. So you can use a maximum of 10 waypoints with the gratis ane.
- To better sympathise, download the source code in the attachment and run it to exam it.
- I have used the Google map API v3 for this article.
- Please comment on this article for better comeback and I promise y'all bask the article.
Source: https://www.c-sharpcorner.com/UploadFile/8911c4/how-to-draw-routes-and-calculate-route-time-and-distance-on/
Posted by: harrisonsiquene.blogspot.com
0 Response to "How To Draw A Map On Google Maps"
Post a Comment