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 © <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
将失败。
出于某种原因,我可以动态地将更多热图值添加到我的传单 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 © <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
将失败。