javascript - 如何按坐标或标题选择标记?

标签 javascript jquery google-maps google-maps-api-3

我有使用 gmaps.js 动态生成标记的 map 并且有效。

但我想通过坐标选择标记并触发点击它。

我知道如何触发它,但我不知道如何在 jQuery 中正确选择标记或在 map.markers 数组中找到它?

这是我的代码:

# = require lib/gmaps
$(document).on 'ready', ->

  if $('#map').length > 0
    map = new GMaps(
      div: "#map"
      lat: 53.5500000
      lng: 10.0000000
      zoom: 12
    )

    url = "nearby_cardiologists.json" + window.location.search
    $.getJSON url, (data) ->
      if data and data.length > 0
        firstMarker = data[0]
        map.setCenter firstMarker.latitude, firstMarker.longitude

        $.each data, (index, cardiologist) ->
          cardiologist_info = '<p>' + '<b>' + cardiologist.title + ' ' + cardiologist.first_name + ' ' + cardiologist.last_name + '</b><br>' + cardiologist.street + ', ' + cardiologist.city
          infowindow = new google.maps.InfoWindow(content: cardiologist_info)
          marker = map.addMarker
            lat: cardiologist.latitude
            lng: cardiologist.longitude
          google.maps.event.addListener marker, "click", ->
            infowindow.open map, this

        $("#nearby_cardiologists").on 'click', 'a', (event) ->
          event.preventDefault()
          cardiologist = $(this)
          i = cardiologist.data('id')
          marker = map.markers[0]
          map.setCenter cardiologist.data('coordinates').latitude, cardiologist.data('coordinates').longitude
          map.setZoom 16

      else
        $('#map').hide()

我的目标是点击链接并通过打开它或触发点击标记来缩放 + 显示信息窗口

最佳答案

我认为这个答案应该对您有所帮助:https://stackoverflow.com/a/14524925/1856970

您需要能够以某种方式将标记绑定(bind)到 a 链接(此示例使用附加到两者的 id 属性来确定要触发的正确标记单击事件),以便能够在运行时找到它.不可能仅通过它的长/纬度坐标来选择标记。

另一种方法是在实例化标记的 foreach 循环中创建链接单击事件。这简化了事情,允许您在进展时将每个标记都放在范围内,并且无需在以后的执行点选择标记。

一旦有了合适的标记,获取长纬度就很简单了,可以使用 getPosition 来完成(大概是为了让 map 居中等)。

关于javascript - 如何按坐标或标题选择标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710079/

相关文章:

Javascript鼠标悬停,为图像添加边框

javascript - 从 textarea 获取 json 文件

javascript - 使用下拉列表过滤数据表列

javascript - 通过 keyup 和 keydown 进行 fire .change

javascript - 单选类型切换按钮问题

javascript:如何获取 json 对象的最高层作为数组?

google-maps - Google 可以对 NUTS 区号进行地理编码吗?

Android 谷歌地图不显示绘制的圆圈

javascript - 获取最小化 Chrome 窗口的顶部和左侧 (x, y) 坐标 (JS)

javascript - 谷歌地图动画标记移动