リーフレットの新機能で、Open Notify API(http://open-notify.org/Open-Notify-API/)を使ってマップ上のISSを追跡しています。マーカーを作成し、マップに追加した後、私はオープンで提供される次の関数が通知を呼び出す:マーカーを動かすときのリーフレットエラー:setLatLngは関数ではありません
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);
}
これが正常に緯度と経度の値を取得しますが、その後、私はエラーを取得する:
Uncaught TypeError: iss.setLatLng is not a function
私はリーフレットのドキュメント(http://leafletjs.com/reference-1.0.2.html#marker-setlatlng)からsetLatLngメソッドが存在することを知っています。なぜそれが呼び出されないのですか?それが認識される前に最初にインストールする必要がある別のプラグインはありますか?
'iss'は定義されていませんか? –
それはそれでした。私は関数の外で定義したと思っていましたが、私が見たことのないどこかに構文エラーがあったに違いありません。問題がsetLatLngであると思って周りを回る。 – Sydney