Je travaille avec google map. Selon les exigences, je dois définir un niveau de zoom différent qui dépend de ma requête de recherche. S'il y a plusieurs endroits sur la carte dans le pays, alors la carte devrait cibler le pays. Autre scénario: s'il existe différents emplacements marqués dans une ville, la carte doit être centrée sur le niveau de la ville.Comment définir dynamiquement le niveau de zoom personnalisé de google map?
Répondre
var geoCoder = new GClientGeocoder();
geoCoder.setViewport(map.getBounds());
geoCoder.getLocations('searchquery', function(latlng) {
if(latlng.Placemark.length > 0) {
var box = latlng.Placemark[0].ExtendedData.LatLonBox;
var bounds = new GLatLngBounds(new GLatLng(box.south, box.west), new GLatLng(box.north, box.east));
var center = new GLatLng(box.Placemark[0].Point.coordinates[1], latlng.Placemark[0].Point.coordinates[0]);
var zoom = oMap.getBoundsZoomLevel(bounds);
map.setCenter(center, zoom);
}
});
Je pense que la partie clé de ce pour vous est
//box is a LatLonBox with the size of your resultquery. You can create this yourself as well
var box = latlng.Placemark[0].ExtendedData.LatLonBox;
//bounds are the bounds of the box
var bounds = new GLatLngBounds(new GLatLng(box.south, box.west), new GLatLng(box.north, box.east));
//center is the center of the box, you want this as the center of your screen
var center = new GLatLng(box.Placemark[0].Point.coordinates[1], latlng.Placemark[0].Point.coordinates[0]);
//zoom is the zoomlevel you need for all this
var zoom = oMap.getBoundsZoomLevel(bounds);
//the actual action
map.setCenter(center, zoom);
J'ai trouvé l'article suivant très utile. en utilisant le code d'échantillon de code que je peux capable d'atteindre enter link description here cela.
J'ai essayé le code dans drupal et ça marche.
Après avoir effectué la recherche, une fois que vous avez les emplacements, vous pouvez utiliser bounds.extend
et map.fitBounds
de sorte que la carte effectue automatiquement un zoom pour afficher toutes les broches retournés par votre recherche, comme celui-ci:
//places is an array that contains the search result
var bounds = new google.maps.LatLngBounds();
for (var i = 0, place; place = places[i]; i++) {
//pass the location of each place to bounds.extend
bounds.extend(place.geometry.location);
}
//tell your map to sets the viewport to contain all the places.
map.fitBounds(bounds);
Sur l'autre Si vous effectuez une recherche sur une zone comme un code postal, une ville ou un pays à l'aide du codeur géographique, vous pouvez également utiliser map.fitBounds
pour définir la zone d'affichage entière de la zone retournée par le codeur géographique, comme ceci:
//response is the geocoder's response
map.fitBounds(response[0].geometry.viewport);
Voici un codepen avec l'exemple de géocodeur https://codepen.io/jaireina/pen/gLjEqY
- 1. Comment définir le niveau de zoom de Google Map pour afficher tous les marqueurs?
- 2. Puis-je définir le niveau de zoom automatique dans google map?
- 3. comment régler le niveau de zoom par défaut dans android google map?
- 4. Comment définir le niveau de zoom d'une carte Google en fonction de l'emplacement des marqueurs
- 5. Personnalisé google map infoWindow
- 6. Comment obtenir l'API Google Maps pour définir le niveau de zoom correct pour un pays?
- 7. KML/Google Map - Spécification du niveau de zoom d'une carte incorporée dans un iFrame
- 8. MkMapView Niveau de zoom
- 9. Google-Maps v3: Comment changer le style de carte en fonction du niveau de zoom?
- 10. Impossible de charger dynamiquement google map javascript
- 11. Redimensionnement personnalisé MKAnnotationView selon le niveau de zoom MapKit
- 12. Définir le niveau de zoom minimum pour MapView
- 13. Google Map APi barre de zoom ne pas afficher
- 14. Google Map API v3 - Définir les limites et le centre
- 15. Comment ajouter une icône de marqueur personnalisé à Google Map?
- 16. Niveau de zoom personnalisé dans Bing Maps Contrôle Silverlight
- 17. Charger dynamiquement Google Map Tutoriel AJAX
- 18. Définir le zoom pour Webview
- 19. Google Map V3.0 Utilisation du marqueur personnalisé
- 20. Map Map dans google map Codage GEO
- 21. personnalisé google map marker - javascript & php
- 22. GLatLngBounds - mauvais centre et niveau de zoom
- 23. Google Maps v3: Enforcing min. niveau de zoom lors de l'utilisation de fitBounds
- 24. Appel de google Map
- 25. jeu de niveau de zoom lorsque marqueur est retiré
- 26. Comment changer les marqueurs sur le zoom changer dans google map api
- 27. Afficher le calque WMS en fonction du niveau de zoom
- 28. comment intégrer google map?
- 29. Google Map n'apparaissant pas
- 30. Google maps zoom broken