gpt4 book ai didi

javascript - 移动标记 : setLatLng is not a function 时传单错误

转载 作者:行者123 更新时间:2023-12-04 00:42:47 25 4
gpt4 key购买 nike

我是 Leaflet 的新手,正在练习使用 Open Notify API ( http://open-notify.org/Open-Notify-API/ ) 在 map 上跟踪 ISS。创建标记并将其添加到 map 后,我调用 Open Notify 提供的以下函数:

function moveISS () {
$.getJSON('http://api.open-notify.org/iss-now.json?callback=?', function(data) {
var lat = data['iss_position']['latitude'];
var lon = data['iss_position']['longitude'];

iss.setLatLng([lat, lon]);
isscirc.setLatLng([lat, lon]);
map.panTo([lat, lon], animate=true);
});
setTimeout(moveISS, 5000);
}

这成功获得了 lat 和 lon 值,但随后出现错误:
Uncaught TypeError: iss.setLatLng is not a function

我知道 Leaflet 文档( http://leafletjs.com/reference-1.0.2.html#marker-setlatlng )中存在 setLatLng 方法,那么为什么没有调用它?是否有其他插件需要先安装才能被识别?

最佳答案

从open-notify示例来看,示例代码中有一段注释:

See leaflet docs for setting up icons and map layers



问题中显示的代码没有显示 iss的定义.该错误表明它可能不是传单 marker .
ississcirc可以像在 Leaflet 示例代码中那样定义:
var iss = L.marker([51.5, -0.09]).addTo(map).bindPopup("<b>The International Space Station</b>").openPopup();

var isscirc = L.circle([51.508, -0.11], 500, {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5
}).addTo(map);

上面的起始坐标是任意的,将在第一次调用 moveISS 时更新。 .

jsfiddle对于改编自传单示例代码的工作示例。

关于javascript - 移动标记 : setLatLng is not a function 时传单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41247646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com