OSM Buildingsviewer.remove() иviewer.destroy() не работают должным образом.Javascript

Форум по Javascript
Ответить
Anonymous
 OSM Buildingsviewer.remove() иviewer.destroy() не работают должным образом.

Сообщение Anonymous »

Я новичок в программировании, поэтому, пожалуйста, потерпите...
Поэтому я пытаюсь динамически добавлять и удалять объекты из 3dviewer OSMBuildings с помощью JavaScript.
Краткое объяснение:
Я пытался использовать метод .remove(), но безрезультатно... Затем я нашел .destroy(), но он тоже не сработал. (Почти во всех сценариях, которые я тестировал, я получаю 0 ошибок/совершенно тихий сбой, и все просто продолжается без удаления объекта.)
Затем после этого попытался использовать метод .destroy + очистку html-div, чтобы очистить всю карту и просто перезагрузить все объекты, кроме того, который я хочу удалить, но карта начинает мигать красным, когда я создаю новую (вероятно, потому, что старая не очищается полностью).
Подробное объяснение/разглагольствования:
В «документации» (https://osmbuildings.org/documentation/viewer/api) упоминается метод .remove(), который, похоже, не работает, что бы я ни пытался (я пробовал view.remove(сам объект), я пробовал использовать просмотрщик.remove('id' объекта), я попробовал object.remove() и т. д. и т. п.). Я даже просмотрел исходный код, чтобы найти:
remove(object) {
if (object.destroy) {
object.destroy()
}
}

Затем я попробовал метод object.destroy, который тоже НИЧЕГО не сделал... Я даже не получил ни одного сообщения об ошибке ни в одном из этих тестов, за исключением object.remove().
После этого я попытался использовать довольно неудовлетворительный обходной путь (как описано во второй половине моего краткого объяснения), очистив div, уничтожив карту и создав новую без объекта, который я хочу удалить. Но из-за этого новая карта просто мигает красным и появляется сбой... Затем я попытался просто удалить div и создать новый div с тем же именем, но затем OSMBuildings, похоже, вообще не находит этот div (полагаю, поскольку сообщение об ошибке не очень полезно), несмотря на то, что div определенно существует....
Я работаю с HTML, JavaScript и CSS в Windows 11 Pro, используя Chrome и Opera для тестирования своей страницы.
/>Как я могу решить эту проблему?
Я перепробовал слишком много вещей, чтобы подробно рассказать обо всех из них, но я не приложу свою текущую попытку удаления объекта.





3D Map with OSM Buildings





body {
margin: 0;
padding: 0;
}





var map = new OSMBuildings({
container: 'map3D',
position: { latitude: 53.111212, longitude: 8.857276 },
zoom: 16,
minZoom: 13,
maxZoom: 19,
attribution: '© Data OpenStreetMap © Map OSM Buildings'
});

map.addMapTiles('https://tile-a.openstreetmap.fr/hot/{z}/{x}/{y}.png');
map.addGeoJSONTiles('https://{s}.data.osmbuildings.org/0.2/59fcc2e8/tile/{z}/{x}/{y}.json');




//var for custom building
var buildings = [];
let lon = 53.111;
let lat = 8.857;
droneSize = 2;
let lat1 = lat + 0.00005;
let lon1 = lon + 0.00005;
let lat2 = lat + 0.00005;
let lon2 = lon - 0.00005;
let lat3 = lat - 0.00005;
let lon3 = lon - 0.00005;
let lat4 = lat - 0.00005;
let lon4 = lon + 0.00005;

let customBuilding = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"height": 15,
"minHeight": 11,
"color": "#cc0000"
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[lat1, lon1],
[lat2, lon2],
[lat3, lon3],
[lat4, lon4],
[lat1, lon1]
]]
}
}
]
};

//add custom building and store object in buildings array
buildings.push(map.addGeoJSON(customBuilding, { id: '1' }));
//remove custom buildings that are in array from map
for(const building of buildings) {
console.log(building);
//different tries to remove building from map
map.remove(building);
map.remove({id: '1'});
map.remove('1');
map.remove(1);
building.destroy();
}






Подробнее здесь: https://stackoverflow.com/questions/797 ... -propperly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»