Googl Map Pro1
Googl Map Pro1
This paper gives a perspective about how Google Maps, one of the world’s most influential
application works. Google Maps was initially coded in C++ programming language by its
founders - Lars and Jens Eilstrup Rasmussen. Formerly it was named ‘Where 2 Technologies’,
which was later acquired by Google Inc. in 2004, which renamed this web-application to
Google Maps. Earlier it had limited features restricted to navigation, but today it provides
overwhelming features like street-view, ETA and other such intriguing features.
It gives an overview about the algorithms and procedures employed by Google Maps to carry
out analysis and enable users to carry out desired operations. Various features provided by
Google Maps are portrayed in this paper. It describes the algorithms and procedures used by
Google Maps to find the shortest path, locate one’s position, geocoding and other such
elegant features it provides its users.
Keywords
Heuristics, A* algorithm, Dijkstra’s algorithm, Street View, Rosette, Optical flow, Ceres Solver,
Geocoding, Triangulation, Trilateration, WAAS, GNSS, Geo-Positioning System [GPS].
2 | Page
TableofContents
Abstract .................................................................................................................... ii
Introduction ...............................................................................................................1
Roadmap ...................................................................................................................5
Satellite......................................................................................................................6
Hybrid ........................................................................................................................ 7
Terrain .......................................................................................................................9
3 | Page
Enabling/Disabling All the Controls ........................................................................... 18
Polylines .................................................................................................................. 32
Polygons .................................................................................................................. 33
Rectangles ................................................................................................................ 35
Circles ...................................................................................................................... 37
4 | Page
Google Maps
1.
INTRODUCTION
Google Maps is one of the most sought after innovation in the history of technology. The advent of
this feature by the tech- giant Google Inc. Google Map enables people to navigate and find the
shortest and most convenient route to their desired destination. According to a recent survey,
Google Maps has acquired almost 64 million users. Moreover, it has included new features like
street-view, location of hospitals, cafes, police-stations and many more helpful features. The
algorithms, techniques and technology used by Google Maps is cutting-edge and highly advanced.
The team of engineers at Google, preserve and analyze myriad datasets including historic and real-
time data, which is what makes Google Maps so progressive and accurate. The prediction models
continuous valued functions i.e., predicts new values. Also ML models can be used and applied on
traditional computing techniques to improve the existing accuracies [1-5].
WhatareGoogleMaps?
Google Maps is a web mapping service developed by Google. It offers
satellite imagery, aerial photography, street maps, and 360° interactive
panoramic views of streets (Street View), real-time traffic conditions,
and route planning for traveling by foot, car, bicycle, or public
transportation.
Users can access Google Maps through a web browser on a computer or
through the Google Maps mobile app on smartphones and tablets.
It is a free web mapping service by Google that provides various types of
geographical information. Using Google Maps, one can.
Search for places or get directions from one place to another.
5 | Page
1. GOOGLE MAPS: ALGORITHMS AND TECHNIQUES
1.1 Dijikstra’s Algorithm
Google maps employs Graph data structures for calculation of the shortest path from the source
(point A) to the destination (point B). Graph data structure comprises of various nodes and multiple
edges connecting these nodes. Dijkstra’s algorithm is an effective and proficient algorithm
proposed by Edsger.W. Dijkstra to navigate the shortest distance and path to reach a given
destination. The nodes of the graph are connected by weighted edges, which represent the
distance to be traversed to reach there. Thus Dijkstra
Devised an algorithm to find the shortest route from the source to the destination.
Google maps deals with a mammoth of data, thus the number of nodes in the graph are myriad.
Thus, graph algorithms like Dijkstra’s algorithm may fail due to the increased time and space
complexity. The drastic increase in the size of the graph limits the efficiency of the algorithm.
Heuristic algorithms like A* algortihm prove to be implementable.
A* is similar to Dijkstra’s algorithm, which uses a heurisitc function to navigate a better and more
efficient path. A* algorithm assigns higher priority to the nodes which are supposed to be better
(checks for parameters like time requirement, distance and other such parameters) than the others,
while Dijkstra explores all the nodes. Therefore it is meant to be faster than Dijkstra’s algorithm,
even if the memory requirement and operations per node are more, since it explores a lot less
nodes and the gain is good in any case. [7]
6 | Page
1.2 A* (A-star) Algorithm
A* algorithm is a flexible, more efficient and cutting-edge algorithm which Google Maps currently
utilises to find the shortest path between a given source and destination. It has a wider range of
contexts hence, it can deal with larger graphs which is preferable over Dijkstra’s algorithm. A* is like
Greedy Best-First-Search. A* algorithm is widely used since its mechanism involves combining the
pieces of information that Dijkstra algorithm uses (It favors the vertices close to the source) and
information that Greedy Best-First-Search uses (choosing nodes close to the goal).[8]
One of the difference between A* and Dijkstra’s algorithm is that A* algorithm, being a heuristic
algorithm, has two cost functions:
G(x):- The actual cost to reach a vertex (same applies to Dijkstra)
H(x):- Approximate cost to reach goal node from node n. (This is the heuristic part of the cost
function)
F(x):- T o t a l estimated cost of each node
The cost calculated by A* algorithm shouldn’t be overestimated, since it is a heuristic algorithm.
Hence, the actual cost to reach the destination node, from any given node n should be either greater
than or equal to h(x). This is called Admissible Heuristic.
Hence, one can represent the estimated total cost of each node by:
F (x) = g (x) + h (x).
A node is expanded by A* search, only if it is considered to be promising. This algorithm focuses
solely on reaching the goal node from the node which is currently under consideration. It does not
try to reach other nodes.
Thus, if the heuristic function taken into consideration approximates the future cost accurately, then
one needs to explore considerably less nodes as compared to Dijkstra’s algorithm. [9]
A* algorithm terminates when the destination node has been reached ensuring that the total cost of
reaching the destination node is the minimum compared to all the other paths. It can also terminate
if the destination node has not been reached despite all the nodes being explored. Unlike, Dijkstra’s
algorithm, it does not explore all nodes possible, thus A* proves to be more proficient.
Owing to the high accuracy, flexibility, ability to deal with mammoth graphs and its stark
advantages over Dijkstra’s algorithm, Google Maps has shifted to deploying A* algorithm for
obtaining the shortest path between the source and destination.
STREET VIEW – GOOGLE MAPS
In 2007, the Google Maps team introduced an outstanding feature called Street View. This brilliant
innovation proved to be a milestone in the history of navigation and GPS. Street View, the newly
introduced feature, provided a 3- dimensional, HD, Panoramic view of many neighborhoods, streets,
avenues, and other such areas merely from one's mobile phone or computer. Surprisingly, these
images are manually taken by Google Maps team using a car specially fitted with multi-camera rig
and other necessary equipment’s for actually taking pictures of the neighborhoods they drive by.
The following images depict the cars and cameras used to generate the street view.
1
Thus, in the modern time, myriad factors apart from average speed of the user on a specific
route, the shortest path and distance between two points have to be taken into consideration
in order to determine and compute the estimated time of arrival.
However, Google Maps cannot take into consideration a user’s personal speed [16], but can
only determine the approximate time of arrival by taking into consideration factors like
distance remaining, average speed due to real-time traffic conditions, historic data and
officially recommended speed. They can thus predict the approximate time needed to reach
the destination using any desired mode of transport (car, walking, train, cycle and other
available modes). The average speed of a person in each of these modes are recorded and
used for determining the ETA.
The technology giant Google is one of the best company at collecting, manipulating, analyzing
data and drawing very accurate conclusions about ETA, shortest path and other such real-time
data. Since it has so much access to data through cellular devices and the data signals emitted
by them, Google Maps can almost correctly and efficiently predict the time taken by the user
to reach his destination.
StepstoLoadtheMaponaWebpage
Step1:CreateanHTMLPage
Create a basic HTML page with head and body tags as shown below:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
</head>
<body>
..............
</body>
</html>
2
<!DOCTYPE html>
<html>
<head>
</head>
<body>
..............
</body>
</html>
3
Google Maps
Step3:CreatetheContainer
To hold the map, we have to create a container element, generally the <div> tag (a generic
container) is used for this purpose. Create a container element and define its dimensions as
shown below:
Step4:MapOptions
Before initializing the map, we have to create a map Options object (it is created just like a
literal) and set values for map initialization variables. A map has three main options, namely,
center, zoom, and map typed.
Center − under this property, we have to specify the location where we want to
center the map. To pass the location, we have to create a LatLng object by passing the
latitude and longitudes of the required location to the constructor.
Zoom − under this property, we have to specify the zoom level of the map.
Map typed − Under this property, we have to specify the type of the map we want.
Following are the types of maps provided by Google –
Within a function, say, load Map (), create the map Options object and set the required
values for center, zoom, and map TypeId as shown below.
Function loadMap() {
var mapOptions = {
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
4
Google Maps
Step5:CreateaMapObject
You can create a map by instantiating the JavaScript class called Map. While instantiating this
class, you have to pass an HTML container to hold the map and the map options for the
required map. Create a map object as shown below.
Step6:LoadtheMap
Finally load the map by calling the load Map () method or by adding DOM listener.
or
<body onload="loadMap()">
Example
The following example shows how to load the roadmap of the city named Vishakhapatnam
with a zoom value of 12.
5
Google Maps
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:12,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
</script>
</head>
<body>
6
GOOGLE MAPS – TYPES Google Maps
In the previous chapter, we discussed how to load a basic map. Here, we will see how to
select a required map type.
TypesofMaps
Google Maps provides four types of maps. They are:
ROADMAP − this is the default type. If you haven't chosen any of the types, this will
be displayed. It shows the street view of the selected region.
SATELLITE − this is the map type that shows the satellite images of the selected
region.
HYBRID − this map type shows the major streets on satellite images.
TERRAIN − this is the map type that shows the terrain and vegetation.
Syntax
To select one of these map types, you have to mention the respective map type id in the
map options as shown below:
var mapOptions = {
};
Roadmap
The following example shows how to select a map of type ROADMAP:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
7
center:new google.maps.LatLng(17.609993, 83.221436),
zoom:9,
Google Maps
</script>
</head>
<body>
</body>
</html>
Satellite
The following example shows how to select a map of type SATELLITE:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
8
Google Maps
function loadMap() {
var mapOptions = {
zoom:9,
mapTypeId:google.maps.MapTypeId.SATELLITE
};
</script>
</head>
<body>
</body>
</html>
Hybrid
9
Google Maps
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:9,
mapTypeId:google.maps.MapTypeId.Hybrid
};
</script>
</head>
<body>
</body>
</html>
10
Google Maps
Terrain
The following example shows how to select a map of type TERRAIN:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:9,
mapTypeId:google.maps.MapTypeId.TERRAIN
};
</script>
</head>
11
GOOGLE MAPS – ZOOM
Increase/DecreasetheZoomValue
You can increase or decrease the zoom value of a map by modifying the value of the
zoom attribute in the map options.
Syntax
We can increase or decrease the zoom value of the map using the zoom option. Given
below is the syntax to change the zoom value of the current map.
var mapOptions = {
};
Example:Zoom6
The following code will display the roadmap of the city Vishakhapatnam with a zoom value of
6.
12
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:6
mapTypeId:google.maps.MapTypeId.ROADMAP
};
</script>
</head>
<body>
13
Google Maps
</body>
</html>
Example:Zoom10
The following code will display the roadmap of the city Vishakhapatnam with a zoom value of
10.
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
mapOptions = {
14
Google Maps
</script>
</head>
<body>
</body>
</html>
15
GOOGLE MAPS – LOCALIZATION Google Maps
By default, the city names and option names given on the map will be in English. If required,
we can display such information in other languages as well. This process is known as
localization. In this chapter, we will learn how to localize a map.
LocalizingaMap
You can customize (localize) the language of the map by specifying the language option in
the URL as shown below.
<script src="https://maps.googleapis.com/maps/api/js?language=zh-
Hans"></script>
Example
Here is an example that shows how to localize Google Maps. Here you can see a roadmap of
China that is localized to Chinese language.
16
<!DOCTYPE html>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?language=zh-
Hans"></script>
<script>
function loadMap() {
var mapOptions = {
mapTypeId:google.maps.MapTypeId.ROADMAP
};
</script>
</head>
<body onload="loadMap()">
</body>
17
Google Maps
Google Maps provides a User Interface with various controls to let the user interact with the
map. We can add, customize, and disable these controls.
DefaultControls
Here is a list of the default controls provided by Google Maps:
Zoom − to increase and decease the zoom level of the map, we will have a slider with
+ and - buttons, by default. This slider will be located at the corner of left hand side
of the map.
Pan − Just above the zoom slider, there will be a pan control for panning the map.
Map Type − you can locate this control at the top right corner of the map. It provides
map type options such as Satellite, Roadmap, and Terrain. Users can choose any of
these maps.
Street view − between the pan icon and the zoom slider, we have a penman icon.
Users can drag this icon and place at a particular location to get its street view.
Example
Here is an example where you can observe the default UI controls provided by Google
Maps:
18
Google Maps
DisablingtheUIDefaultControls
We can disable the default UI controls provided by Google Maps simply by making the
Disable Default UI value true in the map options.
Example
The following example shows how to disable the default UI controls provided by Google
Maps.
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
19
Google Maps
</script>
</head>
<body onload="loadMap()">
</body>
</html>
Enabling/DisablingAlltheControls
In addition to these default controls, Google Maps also provides three more controls as
listed below.
Scale − The Scale control displays a map scale element. This control is not enabled by
default.
Rotate − The Rotate control contains a small circular icon which allows you to rotate
maps containing oblique imagery. This control appears by default at the top left
corner of the map. (See 45° Imagery for more information.)
20
Google Maps
Overview − to increase and decease the zoom level of the map, we have a slider with
+ and - buttons, by default. This slider is located at the left corner of the map.
In the map options, we can enable and disable any of the controls provided by Google
Maps as shown below.
panControl: boolean,
zoomControl: boolean,
mapTypeControl: boolean,
scaleControl: boolean,
streetViewControl: boolean,
overviewMapControl: boolean
Example
The following code shows how to enable all the controls:
21
Google Maps
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:5,
panControl: true,
zoomControl: true,
scaleControl: true,
mapTypeControl:true,
streetViewControl:true,
overviewMapControl:true,
rotateControl:true
22
Google Maps
<body onload="loadMap()">
</body>
</html>
ControlOptions
We can change the appearance of Google Maps controls using its control options. For
example, the zoom control can be either reduced or enlarged in size. The Map Type control
appearance can be varied to a horizontal bar or a drop-down menu. Given below is a list of
Control options for Zoom and Map Type controls.
1 Zoom google.maps.ZoomControlStyle.SMALL
control google.maps.ZoomControlStyle.LARGE
google.maps.ZoomControlStyle.DEFAULT
23
Google Maps
2 MapType google.maps.MapTypeControlStyle.HORIZONTAL_BAR
control google.maps.MapTypeControlStyle.DROPDOWN_MENU
google.maps.MapTypeControlStyle.DEFAULT
Example
The following example demonstrates how to use the control options:
24
Google Maps
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:5,
mapTypeControl: true,
mapTypeControlOptions: {
google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN
]
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
</script>
25
Google Maps
</body>
</html>
ControlPositioning
You can change the position of the controls by adding the following line in the control
options.
position:google.maps.ControlPosition.Desired_Position,
Here is the list of available positions where a control can be placed on a map:
TOP_CENTER
TOP_LEFT
TOP_RIGHT
LEFT_TOP
RIGHT_TOP
LEFT_CENTER
RIGHT_CENTER
LEFT_BOTTOM
RIGHT_BOTTOM
BOTTOM_CENTER
BOTTOM_LEFT
BOTTOM_RIGHT
26
Google Maps
Example
The following example shows how to place the Maptypeid control at the top center of the
map and how to place the zoom control at the bottom center of the map.
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
zoom:5,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position:google.maps.ControlPosition.TOP_CENTER,
mapTypeIds: [ google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position:google.maps.ControlPosition.BOTTOM_CENTER
}
}
27
Google Maps
</script>
</head>
<body onload="loadMap()">
</body>
</html>
28
6. GOOGLE MAPS – MARKERS Google Maps
We can draw objects on the map and bind them to a desired latitude and longitude. These
are called overlays. Google Maps provides various overlays as shown below.
Markers
Polylines
Polygons
Circle and rectangle
Info window
Symbols
To mark a single location on the map, Google Maps provides markers. These markers use a
standard symbol and these symbols can be customized. This chapter explains how to add
markers, and how to customize, animate, and remove them.
AddingaSimpleMarker
You can add a simple marker to the map at a desired location by instantiating the marker
class and specifying the position to be marked using letting, as shown below.
map,
});
29
Example
The following code sets the marker on the city Hyderabad (India).
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
}
var map=new google.maps.Map(document.getElementById("sample"),mapOptions);
map,
});
}
</script>
</head>
<body onload="loadMap()">
</body>
30
Google Maps
AnimatingtheMarker
After adding a marker to the map, you can go further and add animations to it such as
bounce and drop. The following code snippet shows how to add bounce and drop
animations to a marker.
animation:google.maps.Animation.BOUNCE
animation:google.maps.Animation.Drop
31
Google Maps
Example
The following code sets the marker on the city Hyderabad with an added animation effect:
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
map,
animation:google.maps.Animation.Drop
});
</script>
</head>
<body onload="loadMap()">
32
Google Maps
CustomizingtheMarker
You can use your own icons instead of the default icon provided by Google Maps. Just
set the icon as icon: ‘ICON PATH'. And you can make this icon drag gable by setting
draggable:true.
Example
The RemovingtheMarker
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
}
var map=new google.maps.Map(document.getElementById("sample"),mapOptions); var
map,
draggable:true,
icon:'myicon.jpg'
});
marker.setMap(map);
</script>
</head>
<body onload="loadMap()">
</body>
</html>
You can remove an existing marker by setting up the marker to null using the
marker.setMap() method following example shows how to customize the marker to a desired icon:
33
Google Maps
Example
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
}
var map=new google.maps.Map(document.getElementById("sample"),mapOptions); var
map,
animation:google.maps.Animation.Drop
});
marker.setMap(null);
</script>
</head>
<body onload="loadMap()">
34
Google Maps
Google Maps
In the previous chapter, we learned how to use markers in Google Maps. Along with
markers, we can also add various shapes such as circles, polygons, rectangles, polylines, etc.
This chapter explains how to use the shapes provided by Google Maps.
Polylines
Polylines, provided by Google Maps, are useful to track different paths. You can add
polylines to a map by instantiating the class google.maps.Polyline. While instantiating this
class, we have to specify the required values of the properties of a polyline such as Stroke
Color, Stoke Opacity, and stroke Weight.
We can add a polyline to a map by passing its object to the method set Map (Map Object).
We can delete the polyline by passing a null value to the Set Map () method.
Example
The following example shows a polyline highlighting the path between the cities Delhi,
London, New York, and Beijing.
<!DOCTYPE html>
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
function loadMap(){ var
mapProp = {
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); var
tourplan=new google.maps.Polyline({
35
path:[new google.maps.LatLng(28.613939, 77.209021),
new google.maps.LatLng(51.507351, -0.127758),
new google.maps.LatLng(40.712784, -74.005941),
new google.maps.LatLng(28.213545, 94.868713) ],
strokeColor:"#0000FF",
strokeOpacity:0.6,
strokeWeight:2
});
tourplan.setMap(map);
//tourplan.setmap(null);
</script>
</head>
<body onload="loadMap()">
</body>
</html>
Polygons
Polygons are used to highlight a particular geographical area of a state or a country. You can
create a desired polygon by instantiating the class google.maps.Polygon. While
36
Google Maps
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
mapProp = {
zoom:4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
myTrip=[
flightPath=new google.maps.Polygon({
path:myTrip,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4
});
Instantiating, we have to specify the desired values to the properties of Polygon such as
path, stroke Color, stroke Opacity, fill Color, fill Opacity, etc.
37
Google Maps
Example
The following example shows how to draw a polygon to highlight the cities Hyderabad,
Nagpur, and Aurangabad.
</head>
<body onload="loadMap()">
</body>
</html>
Rectangles
We can use rectangles to highlight the geographical area of a particular region or a state
using a rectangular box. We can have a rectangle on a map by instantiating the class
google.maps.Rectangle. While instantiating, we have to specify the desired values to the
properties of the rectangle such as path, stroke Color, stroke Opacity, fill Color, fill Opacity,
stroke Weight, bounds, etc.
38
Google Maps
Example
The following example shows how to highlight a particular area on a map using a rectangle:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
mapProp = {
mapTypeId:google.maps.MapTypeId.ROADMAP
};
myrectangle=new google.maps.Rectangle({
strokeColor:"#0000FF",
strokeOpacity:0.6,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4, map:map,
bounds:new google.maps.LatLngBounds(
});
</script>
</head>
<body onload="loadMap()">
</body>
</html>
39
Circles
Just as rectangles, we can use Circles to highlight the geographical area of a particular region
or a state using a circle by instantiating the class google.maps.Circle. While instantiating, we
have to specify the desired values to the properties of the circle such as path, stroke Color,
stroke Opacity, fill Color, fill Opacity, stroke Weight, radius, etc.
Example
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp); var
myCity = new google.maps.Circle({
center:new google.maps.LatLng(28.613939,77.209021), radius:150600,
strokeColor:"#B40404",
strokeOpacity:0.6,
strokeWeight:2,
fillColor:"#B40404",
fillOpacity:0.6
});
myCity.setMap(map);
</script>
</head>
<body onload="loadMap()">
</body>
</html>
40
8. GOOGLE MAPS – INFO WINDOW Google Maps
In addition to markers, polygons, polylines, and other geometrical shapes, we can also draw
an Info Window on the map. This chapter explains how to use the Info Window.
AddingaWindow
Info Window is used to add any kind of information to the map. For instance, if you want to
provide information about a location on the map, you can use an info window. Usually the
info window is attached to a marker. You can attach an info window by instantiating the
google.maps.InfoWindow class. It has the following properties:
Content − you can pass your content in String format using this option.
Position − you can choose the position of the info window using this option.
Max Width − by default, the info window's width will be stretched till the text is
wrapped. By specifying max Width, we can restrict the size of the info window
horizontally.
Example
The following example shows how to set the marker and specify an info window above it:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
}
var map=new google.maps.Map(document.getElementById("sample"),mapOptions); var
marker.setMap(map);
});
infowindow.open(map,marker);
</script>
</head>
<body onload="loadMap()">
</body>
</html>
42
9. GOOGLE MAPS – SYMBOLS Google Maps
In addition to markers, polygons, polylines, and other geometrical shapes, we can also add
predefined vector images (symbols) on a map. This chapter explains how to use the symbols
provided by Google Maps.
AddingaSymbol
Google provides various vector-based images (symbols) that can be used on a marker or a
polyline. Just like other overlays, to draw these predefined symbols on a map, we have to
instantiate their respective classes. Given below is a list of predefined symbols provided by
Google and their class names:
Circle − google.maps.SymbolPath.CIRCLE
43
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
}
var map=new google.maps.Map(document.getElementById("sample"),mapOptions); var
strokeWeight:2, strokeColor:"#B40404"
},
draggable:true, map:
map,
});
</script>
</head>
<body onload="loadMap()">
</body>
</html>
44
Google Maps
AnimatingtheSymbol
Just like markers, you can add animations such as bounce and drop to the symbols as well.
Example
The following example shows how to use a symbol as a marker on a map and add
animation to it:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
strokeWeight:2, strokeColor:"#B40404"
},
animation:google.maps.Animation.DROP, draggable:true,
map: map
});
</script>
</head>
<body onload="loadMap()">
</body>
</html>
45
Google Maps
Google Maps
10 GOOGLE MAPS –
. EVENTS
The Google Maps JavaScript program can respond to various events generated by the user. This chapter
provides examples demonstrating how to perform event handling while working with Google Maps
AddinganEventListener
You can add an event listener using the method add Listener (). It accepts parameters such as object
name on which we want to add the listener, name of the event, and the handler event.
Example
The following
<!DOCTYPE html> example shows how to add an event listener to a marker object. The program raises the
<html>
zoom value of the map by 5 each time we double-click on the marker.
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
var myCenter=new google.maps.LatLng(17.433053, 78.412172);
<body onload="loadMap()">
<div id="googleMap" style="width:580px;height:400px;"></div>
</body>
</html>
46
Google Maps
OpeninganInfoWindowonClick
The following code opens an info window on clicking the marker:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
var myCenter=new google.maps.LatLng(17.433053, 78.412172);
function loadMap(){ var
mapProp = {
center:myCenter,
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new
google.maps.Map(document.getElementById("googleMap"),mapProp); var
marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
var infowindow = new google.maps.InfoWindow({
content:"Hi"
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
</script>
</head>
<body onload="loadMap()">
<div id="googleMap" style="width:580px;height:400px;"></div>
</body>
</html>
47
Google Maps
RemovingtheListener
You can remove an existing listener using the method removeListener(). This method
accepts the listener object, therefore we have to assign the listener to a variable and pass it
to this method.
Example
The following code shows how to remove a listener
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
center:myCenter,
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
content:"Hi"
});
infowindow.open(map,marker);
});
google.maps.event.removeListener(myListener);
</script>
48
</head>
Google Maps
49