Mapy Google - symbole
Oprócz znaczników, wielokątów, polilinii i innych kształtów geometrycznych, możemy również dodawać na mapie predefiniowane obrazy wektorowe (symbole). W tym rozdziale wyjaśniono, jak używać symboli udostępnianych przez Google Maps.
Dodawanie symbolu
Google udostępnia różne obrazy wektorowe (symbole), których można użyć na znaczniku lub polilinii. Podobnie jak inne nakładki, aby narysować te predefiniowane symbole na mapie, musimy utworzyć instancję ich odpowiednich klas. Poniżej znajduje się lista wstępnie zdefiniowanych symboli udostępnionych przez Google i ich nazwy klas -
Circle - google.maps.SymbolPath.CIRCLE
Backward Pointing arrow (closed) - google.maps.SymbolPath.BACKWARD_CLOSED_ARROW
Forward Pointing arrow (closed) - google.maps.SymbolPath.FORWARD_CLOSED_ARROW
Forward Pointing arrow (open) - google.maps.SymbolPath.CIRCLE
Backward Pointing arrow (open) - google.maps.SymbolPath.CIRCLE
Te symbole mają następujące właściwości - path, fillColor, fillOpacity, scale, stokeColor, strokeOpacity i strokeWeight.
Przykład
Poniższy przykład ilustruje sposób rysowania predefiniowanych symboli na mapie Google.
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
center:new google.maps.LatLng(17.433053, 78.412172),
zoom:5
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: map.getCenter(),
icon: {
path: google.maps.SymbolPath.BACKWARD_CLOSED_ARROW,
scale: 5,
strokeWeight:2,
strokeColor:"#B40404"
},
draggable:true,
map: map,
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -
Animowanie symbolu
Podobnie jak znaczniki, możesz dodawać animacje, takie jak odbijanie i upuszczanie, również do symboli.
Przykład
Poniższy przykład pokazuje, jak użyć symbolu jako znacznika na mapie i dodać do niego animację -
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
center:new google.maps.LatLng(17.433053, 78.412172),
zoom:5
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: map.getCenter(),
icon: {
path: google.maps.SymbolPath.BACKWARD_CLOSED_ARROW,
scale: 5,
strokeWeight:2,
strokeColor:"#B40404"
},
animation:google.maps.Animation.DROP,
draggable:true,
map: map
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -