Mapy Google - znaczniki
Możemy rysować obiekty na mapie i wiązać je z wybraną szerokością i długością geograficzną. Nazywa się to nakładkami. Mapy Google zapewniają różne nakładki, jak pokazano poniżej.
- Markers
- Polylines
- Polygons
- Okrąg i prostokąt
- Okno informacyjne
- Symbols
Aby oznaczyć pojedyncze miejsce na mapie, Google Maps zapewnia markers. Te znaczniki używają standardowego symbolu, który można dostosować. W tym rozdziale wyjaśniono, jak dodawać znaczniki oraz jak je dostosowywać, animować i usuwać.
Dodawanie prostego markera
Możesz dodać prosty znacznik do mapy w żądanym miejscu, tworząc instancję klasy znacznika i określając pozycję, która ma być oznaczona za pomocą latlng, jak pokazano poniżej.
var marker = new google.maps.Marker({
position: new google.maps.LatLng(19.373341, 78.662109),
map: map,
});
Przykład
Poniższy kod ustawia znacznik na mieście Hyderabad (Indie).
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
function loadMap() {
var mapOptions = {
center:new google.maps.LatLng(19.373341, 78.662109),
zoom:7
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(17.088291, 78.442383),
map: map,
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -
Animowanie znacznika
Po dodaniu znacznika do mapy możesz przejść dalej i dodać do niego animacje np bounce i drop. Poniższy fragment kodu pokazuje, jak dodać animacje odbijania i upuszczania do znacznika.
//To make the marker bounce`
animation:google.maps.Animation.BOUNCE
//To make the marker drop
animation:google.maps.Animation.Drop
Przykład
Poniższy kod ustawia znacznik na mieście Hyderabad z dodatkowym efektem animacji -
<!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.377631, 78.478603),
zoom:5
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(17.377631, 78.478603),
map: map,
animation:google.maps.Animation.Drop
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -
Dostosowywanie znacznika
Możesz użyć własnych ikon zamiast domyślnej ikony dostarczanej przez Mapy Google. Po prostu ustaw ikonę jakoicon:'ICON PATH'. I możesz przeciągnąć tę ikonę, ustawiającdraggable:true.
Przykład
Poniższy przykład pokazuje, jak dostosować znacznik do żądanej ikony -
<!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.377631, 78.478603),
zoom:5
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(17.377631, 78.478603),
map: map,
draggable:true,
icon:'/scripts/img/logo-footer.png'
});
marker.setMap(map);
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -
Usuwanie znacznika
Możesz usunąć istniejący znacznik, ustawiając znacznik na null za pomocą marker.setMap() metoda.
Przykład
Poniższy przykład pokazuje, jak usunąć znacznik z mapy -
<!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.377631, 78.478603),
zoom:5
}
var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(17.377631, 78.478603),
map: map,
animation:google.maps.Animation.Drop
});
marker.setMap(null);
}
</script>
</head>
<body onload = "loadMap()">
<div id = "sample" style = "width:580px; height:400px;"></div>
</body>
</html>
Generuje następujący wynik -