【问题标题】:Google maps add listener to marker谷歌地图将监听器添加到标记
【发布时间】:2017-03-07 11:36:07
【问题描述】:

我想为所有标记添加事件侦听器,我正在使用 Google-Maps-for-Rails gem。这是我的代码

  markers_from_api = data.bookings
  handler = Gmaps.build('Google')
  settings = {
    internal: {
      id: 'multi_markers'
    },
    provider:{
      styles: mapStyles
    }
  }
  handler.buildMap settings, ->
    markers = handler.addMarkers(markers_from_api)
    _.each markers,(i, j) ->
      google.maps.event.addListener i, 'click', (object) ->
        alert 'hello'
        return
    createSidebar markers_from_api
    createSidebarLi markers_from_api
    handler.bounds.extendWith markers
    handler.fitMapToBounds()

我尝试将事件侦听器添加到所有标记,但它没有提醒任何东西。如何在 google maps for rails 中添加事件监听器

我有一个数据数组,其中每个数据包含 id、lat、lng

【问题讨论】:

  • 您可以尝试查看documentation,了解 Google Maps with Rails。它在本文档中介绍了如何在标记中添加事件侦听器。所以只需检查示例代码,了解如何正确实现它。

标签: ruby-on-rails ruby-on-rails-3 google-maps google-maps-api-3


【解决方案1】:
  markers_from_api = data.bookings
  handler = Gmaps.build('Google')
  settings = {
    internal: {
      id: 'multi_markers'
    },
    provider:{
      styles: mapStyles
    }
  }
  handler.buildMap settings, ->
    markers = handler.addMarkers(markers_from_api)
    _.each markers,(marker, j) ->
      google.maps.event.addListener marker.serviceObject, 'click', (object) ->
        console.log marker.serviceObject.position.lng()
        render_marker_data markers_from_api[j].id
        return
    handler.bounds.extendWith markers
    handler.fitMapToBounds()

上面的代码marker.serviceObject其实可以获取到marker上的点击事件。

【讨论】:

    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多