Обновить положение маркера json Leaflet и WebGLEarth

Этот вопрос связан с этим вопросом: Обновление позиции маркера листовки каждые x Секунды с JSON. Только я хочу спроецировать карту, созданную с помощью Leaflet, на трехмерный глобус с помощью WebGLEarth. Обычно вы можете комбинировать Leaflet и WebGLEarth, заменив L.map, L.marker и т. Д. На WE.map, WE.marker в исходном коде Leaflet.

Я хотел бы, чтобы текущее местоположение Международной космической станции было спроецировано на моем трехмерном глобусе, поэтому я заменил L.marker в функции update_position этого кода ...

var cloudmadeUrl = 'http://{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg';
            var subDomains = ['otile1','otile2','otile3','otile4'];
            var cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 11,     subdomains: subDomains});

            var map = new L.Map('map', {layers : [cloudmade]}).fitWorld();

var iss;

function update_position() {
$.getJSON('http://open-notify-api.herokuapp.com/iss-now.json?callback=?', function(data) {
    console.log(data);
    var latitude = data["iss_position"]["latitude"];
    var longitude = data["iss_position"]["longitude"];
    if (!iss) {
        iss = L.marker([latitude,longitude]).bindPopup("I am the ISS").addTo(map);
        }
    iss.setLatLng([latitude,longitude]).update();
    setTimeout(update_position, 1000);
    });
   }

update_position();

ДЕМО

... пользователя WE.marker. К сожалению, обновление положения больше не работает на моем 3D-глобусе, тогда как на 2D-карте оно работало. Я пробовал добавить

setInterval(update_position,2000);

чуть выше update_position ();, затем маркер обновляется несколько раз (~ 5), а затем внезапно останавливается. Если я перемещаю указатель мыши по земному шару путем панорамирования, маркер обновляется до своего текущего положения и обновляется несколько раз после этого, и в конечном итоге снова останавливается.

Главный вопрос: кто-нибудь знает, как это исправить, чтобы у меня было постоянное обновление маркеров?

Дополнительный вопрос: в идеале я бы хотел, чтобы трек Международной космической станции выглядел так: https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=CZML.html&label=Showcases, с цветной траекторией, по которой станция прошла на своем последнем обороте вокруг Земли. Какие-нибудь советы, как это сделать?

Заранее спасибо!

[Edit 23-1-2015: Мне удалось постоянно обновлять его, создав новую переменную для iis, а именно iis2. Почему это работает, мне непонятно. К сожалению, все «старые» позиции маркеров не исчезают, поэтому я получаю размытый след маркера.

    var iss;
var iis2;

function update_position() {
    $.getJSON('http://open-notify-api.herokuapp.com/iss-now.json?callback=?', function(data) {
        console.log(data);
        var latitude = data["iss_position"]["latitude"];
        var longitude = data["iss_position"]["longitude"];
        if (!iss) {
            iss2 = WE.marker([latitude,longitude]).bindPopup("I am the ISS").addTo(map);
        }
        iss2.setLatLng([latitude,longitude]).update();
    });
}
update_position();
setInterval(update_position,1000);

]


person VeerleT    schedule 19.01.2015    source источник


Ответы (1)


убрать маркер

var iss;
var iis2;

function update_position() {
    $.getJSON('http://open-notify-api.herokuapp.com/iss-now.json?callback=?', function(data) {
        console.log(data);
        map.removeLayer(iss2);
        var latitude = data["iss_position"]["latitude"];
        var longitude = data["iss_position"]["longitude"];
        if (!iss) {
            iss2 = WE.marker([latitude,longitude]).bindPopup("I am the ISS").addTo(map);
        }
        iss2.setLatLng([latitude,longitude]).update();
    });
}
update_position();
setInterval(update_position,1000);
person Shafiq Mustapa    schedule 18.08.2017
comment
Пытался упростить: map.removeLayer (Players [player] .marker); игроки [игрок] .marker = WE.marker (newLatLng) .bindPopup (игрок) .addTo (карта); Получено: player.js: 37 Uncaught TypeError: map.removeLayer не является функцией - person John Carlson; 11.05.2018
comment
iss2.removeFrom (карта); - person John Carlson; 11.05.2018