Я новичок в листке и пытаюсь написать свою собственную карту. В целом, до сих пор мне удалось сделать все, что я хотел, за исключением одной вещи: после перехода на основной слой кнопка на спине не удалена. Как я могу реализовать это так, чтобы он был удален? Я бросаю весь код на всякий случай. < /P>
const bounds = [
[0, 1280],
[1280, 0]
];
const dungeonIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/dungeon.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const areafinterestIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_areaofinterest_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const houseIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_group_house_owned.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const arenaIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_solotrial_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const campfireIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_camp_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const map = L.map('map', {
crs: L.CRS.Simple,
minZoom: -1,
maxZoom: 4,
maxBounds: bounds,
center: [640, 640],
fullscreenControl: true,
fullscreenControlOptions: {position: 'topleft'},
forcePseudoFullscreen: true,
zoom: 0
}).setView([640, 640], 0);
const mainBounds = [[0, 0], [1280, 1280]];
const mainLayer = L.imageOverlay('/images/6/67/Reach_base.jpg', mainBounds).addTo(map);
map.fitBounds(mainBounds);
// events are fired when entering or exiting fullscreen.
map.on('enterFullscreen', function () {
console.log('entered fullscreen');
map.setZoom(0);
});
map.on('exitFullscreen', function () {
console.log('exited fullscreen');
map.setZoom(-1);
});
function addZones() {
L.marker([1064, 478], {icon: dungeonIcon}).addTo(map).bindPopup("testtest");
}
backButton.disable();
addZones();
const MarkarthZone = L.polygon([
[628, 242],
[635, 243],
[640, 254],
[637,275],
[639,278],
[657,287],
[663,296],
[663,296],
[659,324],
[665,337],
[656,360],
[647,373],
[646,384],
[632,396],
[616,389],
[606,369],
[601,352],
[596,344],
[581,351],
[573,336],
[572,320],
[574,302],
[571,287],
[574,264],
[583,249],
[596,252]
], {className: "leaflet-polygon"}).bindTooltip("Markarth");
MarkarthZone.addTo(map);
MarkarthZone.on('click', function () {
map.eachLayer(function (layer) {
map.removeLayer(layer);
});
const MarkarthBounds = [[0, 0], [1280, 1280]];
L.imageOverlay('/images/d/d4/Markarthcity_base.jpg', MarkarthBounds).addTo(map);
map.fitBounds(MarkarthBounds);
const backButton = L.control({position: 'topright'});
backButton.onAdd = function () {
const div = L.DomUtil.create('div', 'leaflet-bar');
div.innerHTML = '←';
div.onclick = function () {
map.eachLayer(layer => map.removeLayer(layer));
mainLayer.addTo(map);
map.fitBounds(mainBounds);
MarkarthZone.addTo(map);
addZones();
return false;
remove();
};
return div;
};
backButton.addTo(map);
const MarkarthIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/Markarth.png',
iconSize: [252, 74],
iconAnchor: [22, 14],
});
L.marker([1064, 478], {icon: MarkarthIcon}).addTo(map);
});
< /code>
Я попробовал несколько параметров с удалением кнопки, но все напрасны. Код либо ломается, либо не работает
Подробнее здесь: https://stackoverflow.com/questions/795 ... k-to-layer
Как удалить кнопку после переключения обратно на слой? [закрыто] ⇐ Javascript
Форум по Javascript
-
Anonymous
1745849788
Anonymous
Я новичок в листке и пытаюсь написать свою собственную карту. В целом, до сих пор мне удалось сделать все, что я хотел, за исключением одной вещи: после перехода на основной слой кнопка на спине не удалена. Как я могу реализовать это так, чтобы он был удален? Я бросаю весь код на всякий случай. < /P>
const bounds = [
[0, 1280],
[1280, 0]
];
const dungeonIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/dungeon.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const areafinterestIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_areaofinterest_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const houseIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_group_house_owned.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const arenaIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_solotrial_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const campfireIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/poi_camp_complete.png',
iconSize: [48, 48],
iconAnchor: [22, 14],
});
const map = L.map('map', {
crs: L.CRS.Simple,
minZoom: -1,
maxZoom: 4,
maxBounds: bounds,
center: [640, 640],
fullscreenControl: true,
fullscreenControlOptions: {position: 'topleft'},
forcePseudoFullscreen: true,
zoom: 0
}).setView([640, 640], 0);
const mainBounds = [[0, 0], [1280, 1280]];
const mainLayer = L.imageOverlay('/images/6/67/Reach_base.jpg', mainBounds).addTo(map);
map.fitBounds(mainBounds);
// events are fired when entering or exiting fullscreen.
map.on('enterFullscreen', function () {
console.log('entered fullscreen');
map.setZoom(0);
});
map.on('exitFullscreen', function () {
console.log('exited fullscreen');
map.setZoom(-1);
});
function addZones() {
L.marker([1064, 478], {icon: dungeonIcon}).addTo(map).bindPopup("[url=/index.php/test]test[/url]test");
}
backButton.disable();
addZones();
const MarkarthZone = L.polygon([
[628, 242],
[635, 243],
[640, 254],
[637,275],
[639,278],
[657,287],
[663,296],
[663,296],
[659,324],
[665,337],
[656,360],
[647,373],
[646,384],
[632,396],
[616,389],
[606,369],
[601,352],
[596,344],
[581,351],
[573,336],
[572,320],
[574,302],
[571,287],
[574,264],
[583,249],
[596,252]
], {className: "leaflet-polygon"}).bindTooltip("Markarth");
MarkarthZone.addTo(map);
MarkarthZone.on('click', function () {
map.eachLayer(function (layer) {
map.removeLayer(layer);
});
const MarkarthBounds = [[0, 0], [1280, 1280]];
L.imageOverlay('/images/d/d4/Markarthcity_base.jpg', MarkarthBounds).addTo(map);
map.fitBounds(MarkarthBounds);
const backButton = L.control({position: 'topright'});
backButton.onAdd = function () {
const div = L.DomUtil.create('div', 'leaflet-bar');
div.innerHTML = '[url=#]←[/url]';
div.onclick = function () {
map.eachLayer(layer => map.removeLayer(layer));
mainLayer.addTo(map);
map.fitBounds(mainBounds);
MarkarthZone.addTo(map);
addZones();
return false;
remove();
};
return div;
};
backButton.addTo(map);
const MarkarthIcon = L.icon({
iconUrl: '/resources/assets/leaflet/icons/Markarth.png',
iconSize: [252, 74],
iconAnchor: [22, 14],
});
L.marker([1064, 478], {icon: MarkarthIcon}).addTo(map);
});
< /code>
Я попробовал несколько параметров с удалением кнопки, но все напрасны. Код либо ломается, либо не работает
Подробнее здесь: [url]https://stackoverflow.com/questions/79596587/how-to-remove-button-after-switching-back-to-layer[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия