2016-05-10 2 views
0

Im новый для javascript. На карте, когда наложено щелчок, я пытаюсь сделать так, чтобы вызывалась функция, которая имеет доступ к наложенному наложению.Google maps overlay clickable

Вот мой код, не получая никаких ошибок в консоли.

<div style='width: 800px;'> 
    <div id="multi_overlays" style='width: 1000px; height: 600px;'></div> 
</div> 

<script type="text/javascript"> 
    handler = Gmaps.build('Google'); 

    handler.buildMap({ internal: {id: 'multi_overlays'}}, function(){ 

     var circles = handler.addCircles(
     [{ lat: 41.991873, lng: -70.652213, radius: 2000 }], 
     { strokeColor: '#FF0001'} 
    ); 

     var polylines = handler.addPolylines(
      [ 
      [ 
      ] 
     ], 
     { strokeColor: '#FF0000'} 
    ); 


     var polygons = handler.addPolygons(
      [ 
      //ccb_nw 
       [{lat:41.83,lng:-70.44},{lat:41.87,lng:-70.28},{lat:41.77,lng:-70.49},{lat:41.75,lng:-70.19}], 
      //ccb_se 
       [{lat: 41.984198, lng: -70.319776}, {lat: 41.970926, lng: -70.110349},{lat: 41.825776, lng: -70.164594},{lat: 41.803259, lng: -70.222959}], 
      //ccb_sw 
       [{lat: 41.887260, lng: -72.529131}, {lat: 41.920867, lng: -70.335363},{lat: 41.794781, lng: -70.283835},{lat: 41.783006, lng: -70.498755}], 
      ], 
       { strokeColor: '#FF0000'} 
     ); 


     handler.bounds.extendWith(polylines); 
     handler.bounds.extendWith(polygons); 
     handler.bounds.extendWith(circles); 
     handler.fitMapToBounds(); 

     markers = handler.addMarkers([{"lat":42.30010009999999,"lng":-70.2994764,"infowindow":"Bass bite is picking up"},{"lat":41.6820897,"lng":-69.95976639999999,"infowindow":"Tuna non existent"},{"lat":42.0417525,"lng":-70.6722767,"infowindow":"good trip"},{"lat":42.072454,"lng":-70.206835,"infowindow":"On fire"}]); 
     handler.bounds.extendWith(markers); 
     handler.fitMapToBounds(); 


    }); 
</script> 

Я попытался с помощью Google Maps AddListener событие для прослушивания кликов:

handler.addListener('click', function(event){ 
    alert('the map was clicked'); 
}); 

Приведенный выше код не работает. Наложения появляются, но при нажатии на них ничего не происходит. Я думаю, что это, возможно, что-то делать с панелями:

https://developers.google.com/maps/documentation/javascript/reference?csw=1#MapPanes

Но каждый раз, когда я пытаюсь добавить overlayMouseTarget он говорит мне, что объект не существует. Я очень потерян. Как сделать оверлей кликабельным?

ответ

-1

Вам нужно будет сделать прослушиватель, используя переменную, которую вы установили для используемого вами маркера/круга. Это должно помочь вам:

google.maps.event.addListener(<variable>, 'click', function (event) { 
     handleClick(event); // Your function here 
}); 

У меня есть больше примера здесь: https://snippetbox.xyz/9eb54a2a1f52dc1f5d41/

+0

Если я правильно понимаю, вопрос с просьбой способом добавить щелчка слушатель на накладку. вы говорите, чтобы сделать маркер поверх наложения и добавить клик к этому? – Philip7899

+0

@ Philip7899 Он может использоваться для обоих. Однако я ответил на этот вопрос. Это был лишь некоторый код, который у меня был, что могло бы помочь его понять. – Mazodude

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