web-dev-qa-db-fra.com

Lat et limites maximales pour le monde - API Google Maps LatLngBounds ()

La vue du terrain de Google Maps par défaut a un panoramique illimité de la tuile de la carte. Vous pouvez utiliser LatLngBounds() pour limiter cela, mais quelles sont les coordonnées maximales et minimales que je devrais utiliser pour définir la fenêtre comme juste la terre et non en dehors de la région de la carte?

Coordonnées pour l'Amérique du Nord:

var strictBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(28.70, -127.50), 
    new google.maps.LatLng(48.85, -55.90)
);

J'ai essayé (+90, -180)(-90,180) pas de chance.

42
Ryan Brodie

Les liens fournis par @Marcelo & @Doc sont bien pour comprendre la dérivation du Lat Lng:

Mais si vous juste voulez une réponse pour les limites maximales pour Google Maps :

Latitude: -85 to +85 ( en fait -85.05115 pour une raison quelconque)

Longitude: -180 to +180

Essayez par vous-même sur Google Maps:

(Vous devrez peut-être Zoom arrière. Voyez comment la broche est au "bord" du monde - ce sont les limites)

Donc dans votre code Essayez:

var strictBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(85, -180),           // top left corner of map
    new google.maps.LatLng(-85, 180)            // bottom right corner
);

Veuillez modifier ce wiki (ou mettre à jour votre question) une fois que vous avez la réponse. Merci

82
nelsonic

Voir cet article dans les anciens groupes Google, qui décrit les mathématiques de la projection.

Citation:

la carte ne commence pas à 85 degrés, mais plutôt le degré qui rend la carte carrée. Ceci peut être simplement calaculé comme: atan (sinh (PI)) * 180/PI = 85.05112878 ....

Notez que le calcul des tuiles dans ce post est pour l'ancienne API V2, mais la projection devrait être la même.

8
Marcelo

Vous pouvez faire ce qui suit pour obtenir les limites Max Lat et Long du monde à l'aide de Google Maps:

1: Définissez le niveau de zoom 1 de Google Maps lors de la configuration de Google Map Stuff:

mapOptions = {
                zoom: 1,
 .....
}

2. Procédez comme suit pour obtenir la limite nord-est et sud-ouest de cette carte:

map = new google.maps.Map (document.getElementById ('map-canvas'), mapOptions);

     // NorthEast Latitude : 89.45016124669523
     var latNEValue =  map.getBounds().getNorthEast().lat();
    // NorthEast Longitude : 180
     var longNEValue = map.getBounds().getNorthEast().lng();
     // SouthWest Latitude : -87.71179927260242
     var latSWValue =  map.getBounds().getSouthWest().lat();
     // Southwest Latitude :  -180
     var longSWValue = map.getBounds().getSouthWest().lng();

. Il vous donnera les limites nord-est et sud-ouest suivantes:

Latitude nord-est: 89,45016124669523

Longitude nord-est: 180

Latitude sud-ouest: -87.71179927260242

Longitude sud-ouest: -180

De même au niveau de zoom 0, cela donne les points suivants:

Latitude nord-est: 89,99346179538875

Longitude nord-est: 180

Latitude sud-ouest: -89,98155760646617

Longitude sud-ouest: -180

L'astuce ci-dessus m'a aidé à résoudre mon problème professionnel qui nécessitait une lat/max max.

5
Sumit Arora

pour plus de détails sur les valeurs GPS, vous pouvez lire l'article this .

L'article explique que:

  • La latitude est la distance de l'équateur mesurée le long du méridien de Greenwich. Cette distance est mesurée en degrés et varie entre 0º et 90º Nord et Sud.
  • La longitude est la distance du méridien de Greenwich mesurée le long de l'équateur. Cette distance est mesurée en degrés et varie de 0º à 180º Est et Ouest.
3
Doc Roms