2016-05-07 20 views
-1

Ich habe eine Google-Karte auf der rechten Seite des Bildschirms und Hauslisten auf der linken Seite ähnlich wie Airbnb. Wenn der Nutzer die Google Map verschiebt, werden die Einträge mit der AJAX-Anfrage aktualisiert.Google Maps gibt dieselben Koordinaten zurück, wenn es ausgeblendet wird

Ich möchte die Google-Karte auf kleinen Bildschirmen verbergen. Aber wenn ich Google-Karte seltsam verbirg, gibt es immer Grenzen zurück (sollte 0 zurückgeben, weil es keine Karte gibt), aber map.getBounds().getSouthWest().lat() und map.getBounds().getNorthEast().lat() dasselbe, und map.getBounds().getSouthWest().lng() und map.getBounds().getNorthEast().lng().

Ich verstehe nicht, warum lat und lng Werte gleich ist.

Hier ist meine Grenzen Aufruf;

... 
    new google.maps.event.addListener(map, 'idle', function(){ 

        params = get_bounds(); 

        request_listings(extra_params); 

        console.log(params); 



       }); 



       /* 
       *Utility function: To get the bounds of the map 
       */ 
       function get_bounds(){ 

        return { 

         sw_lat : map.getBounds().getSouthWest().lat(), 

         sw_lng : map.getBounds().getSouthWest().lng(), 

         ne_lat : map.getBounds().getNorthEast().lat(), 

         ne_lng : map.getBounds().getNorthEast().lng() 



        }; 
... 

es Protokolle an Konsole; Karte ist nicht sichtbar

Object {sw_lat: 40.983198400000006, sw_lng: 28.853608399999985, ne_lat: 40.983198400000006, ne_lng: 28.853608399999985} 

Und das ist, wenn die Karte sichtbar ist;

Object {sw_lat: 40.802046203851475, sw_lng: 28.853608399999985, ne_lat: 40.983198400000006, ne_lng: 29.196244508398422} 

zu vergleichen,

das gleiche für beide Fall sw_lng und ne_lat das gleiche mit/ohne Karte. Also bekomme ich diese Werte, aber warum nicht andere oder warum bekomme ich Wert, wenn die Karte nicht sichtbar ist.

Danke

+0

Wie verstecken Sie die Karte? Wenn Sie das div nur ausblenden, hat die Karte, die es antreibt, wahrscheinlich immer noch eine Höhe und Breite und entsprechende geografische Grenzen. – bamnet

+0

Ich benutze bootstrap mit 'hidden-xs hidden-sm' –

Antwort

2

Es klingt wie Sie nur die Karte div display: none; oder eine gleichwertige Einstellung versteckt. In diesem Fall existiert die Karte immer noch im DOM, sie ist einfach nicht sichtbar, weshalb Sie immer noch die Grenzen dafür finden können.

Ich bin mir nicht sicher, ob eine Karte ohne Grenzen existieren kann. Ich würde vorschlagen, den Code zu ändern, in dem Sie diese Grenzen verwenden, um statt einer 0-Grenze auch die Sichtbarkeit zu prüfen.

Wenn Sie wirklich die Karte wollen keine Grenzen (oder so klein Grenzen wie möglich) haben, könnten Sie versuchen, das div zu width: 0px; height: 0px; (oder vielleicht 1px) schrumpfen und dann ein google.maps.event.trigger(map, 'resize'); Ereignis feuern die Karte, um die Größe eines Super passen kleine Schachtel.