2015-05-22 6 views
-1

Может кто-нибудь сказать мне, почему InfoWindow не появляется при первом нажатии? После первого щелчка он всегда отлично работает ...Google Maps Api, GeoJson и InfoWindow

Я просто загружаю данные из файла geojson и пытаюсь добавить событие click.

Есть некоторые проблемы, связанные с привязкой к объекту MVCObject.

var anchor = new google.maps.MVCObject(); 
anchor.setValues({//position of the point 
    position:event.latLng, 
    anchorPoint:new google.maps.Point(0,-40)}); 

infoWindow.open(map, anchor); 

Вот код: https://jsfiddle.net/ajcL2y9p/

ответ

0

я удалил var infoWindow внутри click слушателя и она отлично работает.

JSFiddle

Как это:

var infoWindow = new google.maps.InfoWindow({ 
     content: "", 
     pixelOffset: new google.maps.Size(0, -30) 
    }); 
    // When the user clicks, set 'isColorful', changing the color of the letters. 
    map.data.addListener('click', function (event) { 

     event.feature.setProperty('isColorful', true); 



     infoWindow.setContent('<div>test</div>'); 

     var anchor = new google.maps.MVCObject(); 
     anchor.setValues({ //position of the point 
      position: event.latLng, 
      anchorPoint: new google.maps.Point(0, -40) 
     }); 

     infoWindow.open(map, anchor); 

    }); 

infoWindow лишь инициализируется в первый щелчок. Если вы разместите его за пределами, выполните его инициализацию, а затем установите контент.

+0

Большое вам спасибо! –

0

инициализируйте свою переменную infowindow вне функции, некоторые из которых находятся в initmap(); функция.

надеюсь, что это вам поможет.

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