Leaflet Js Heatmap不会动态添加值

Leaflet Js Heatmap won't dynamically add values

出于某种原因,我可以动态地将更多热图值添加到我的传单 js 地图中。代码错误:setInterval(heat.setLatLngs([randomCoords.lat, randomCoords.lng]), 200)。我真的很清楚自己做错了什么,而且我正在参加黑客马拉松,所以我需要帮助。

$(document).ready ->

  lat = 0
  long = 0
  items = [
    [28.417663,-81.581212],
    [28.417663,-81.581212],
    [28.417663,-81.581212],
    [28.417663,-81.581212],
    [28.417663,-81.581212],
    [28.417663,-81.581212],
  ]

  heat = ""

  randomCoords = ->
    coords = {}
    coords["lat"] = Math.random()/10.0 + 28.417663
    coords["lng"]= Math.random()/10.0 + -81.581212

    console.log(coords.lat, coords.lng)
    return coords

  getLocation = ->
    if navigator.geolocation
      navigator.geolocation.getCurrentPosition showPosition
      console.log("hello")
    return

  showPosition = (position) ->
    lat = position.coords.latitude
    long = position.coords.longitude
    map.setView([28.417663,-81.581212], 13)
    L.marker([28.417663,-81.581212]).addTo(map).bindPopup("You are here!").openPopup()
    heat = L.heatLayer(items,  { maxZoom: 20 }).addTo(map);
    setInterval(heat.setLatLngs([randomCoords.lat, randomCoords.lng]), 200)
    return


  getLocation()

  map = L.map('map')

  L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}',
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>'
    maxZoom: 18
    id: 'id'
    accessToken: 'token').addTo map

  # draw = true
  # add points on mouse move (except when interacting with the map)
  # map.on
  #   movestart: ->
  #     draw = false
  #     return
  #   moveend: ->
  #     draw = true
  #     return
  #   mousemove: (e) ->
  #     if draw
  #       heat.addLatLng e.latlng
  #       console.log e.latlng
  #     return

  # ---
  # generated by js2coffee 2.1.0


  setInterval(randomCoords, 200)

  # addItems = ->
  #   heat.addLatLng(Math.random + 43.474048, Math.random + -80.5402033 );
  #   console.log "added"

你刚刚写了

setInterval(heat.setLatLngs([randomCoords.lat, randomCoords.lng]), 200)

我不知道它是否是真实代码(无论如何我在你的 post 中看不到它),但如果是,那么

heat.setLatLngs([randomCoords.lat, randomCoords.lng])

一旦指针到达代码就会被调用,然后它的返回值将被setInterval使用。

因此,由于返回的不是函数(我很确定),setInterval 将失败。