2016-05-07 2 views
-1

У меня есть карта google в правой части экрана и списки домов слева, похожие на airbnb. Когда пользователь перемещает карту google, списки обновляются с помощью запроса AJAX.Google maps возвращает те же координаты, если скрыт

Я хотел бы скрыть карту google на устройствах с маленькими экранами. Но когда я скрываю карту google, странно, она все равно возвращает границы (должна возвращать 0, так как нет карты), но map.getBounds().getSouthWest().lat() и map.getBounds().getNorthEast().lat() такие же, и map.getBounds().getSouthWest().lng() и map.getBounds().getNorthEast().lng().

Я не понимаю, почему значения lat и lng равны.

Здесь мой ограничительный звонок;

... 
    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() 



        }; 
... 

это бревна для консолей; карта не видна

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

И это когда карта видна;

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

Для сравнения,

sw_lng одинакова для обоих случаях, и ne_lat то же самое с/без карты. Поэтому я получаю эти значения, но почему бы и нет, или почему я получаю значение, когда карта не видна.

Спасибо

+0

Как вы скрываете карту? Если вы просто делаете div скрытым, карта, в которой он все еще имеет место, имеет высоту и ширину и соответствующие геопространственные границы. – bamnet

+0

Я использую bootstrap с 'hidden-xs hidden-sm' –

ответ

2

Похоже, вы просто скрывает карту настройки display: none; или эквивалент DIV. В этом случае карта все еще существует в DOM, она просто не видна, поэтому вы все еще можете получить для нее границы.

Я не уверен, что карта может существовать без ограничений, я бы предложил изменить любой код, который вы используете для этих границ, чтобы также проверить видимость вместо карты, а не 0.

Если вы действительно хотите карту не иметь никаких границ (или как маленькие границ, как это возможно), вы можете попробовать сужая дела до width: 0px; height: 0px; (или, может быть, 1px), а затем запуская google.maps.event.trigger(map, 'resize'); событие, чтобы изменить размер карты, чтобы соответствовать супер крошечная коробка.

Смежные вопросы