添加多边形时,带有按钮的“信息”窗口出现错误

问题描述

我想用按钮执行一个Infowindow,它的执行很好。我使用this,在github上找到了它。

但是,如果我尝试在其上放置GeoJson图层,该按钮将消失

我尝试了很多方法来使此错误消失,但是我仍然面临着这个问题。

This Error I found,the button is disapear

This is what I want,with GeoJson layer on it

这是我的主要活动

const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');

const youtube = new YouTube(config.GOOGLE_API_KEY);

const queue = new Map();


bot.on('message',async message => { // eslint-disable-line
    if (message.author.bot) return undefined;
    if (!message.content.startsWith(config.prefix)) return undefined;

    const args = message.content.split(' ');
    const searchString = args.slice(1).join(' ');
    const url = args[1] ? args[1].replace(/<(.+)>/g,'$1') : '';
    const serverQueue = queue.get(message.guild.id);
    const voiceChannel = message.member.voice.channel;

    let command = message.content.toLowerCase().split(' ')[0];
    command = command.slice(config.prefix.length)

    if (command === 'play') {
        if (!voiceChannel) return message.channel.send(`⛔ **Veuillez vous connecter à un salon vocal !**`);
        const permissions = voiceChannel.permissionsFor(message.client.user);
        if (!permissions.has('CONNECT')) {
            return message.channel.send(`⛔ **Je ne peux pas me connecter,veuillez vérifier que j'ai les bonnes permissions !**`);
        }
        if (!permissions.has('SPEAK')) {
            return message.channel.send(`⛔ **Je ne peux pas parler danc ce salon,veuillez vérifier que j'ai les bonnes permissions !**`);
        }

        if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
            const playlist = await youtube.getPlaylist(url);
            const videos = await playlist.getVideos();
            for (const video of Object.values(videos)) {
                const video2 = await youtube.getVideoByID(video.id); // eslint-disable-line no-await-in-loop
                await handleVideo(video2,message,voiceChannel,true); // eslint-disable-line no-await-in-loop
            }
            return message.channel.send(`**✅ Playlist: __${playlist.title}__ à bien été ajoutée dans la queue !**`);
        } else {
            try {
                var video = await youtube.getVideo(url);
            } catch (error) {
                try {
                    var videos = await youtube.searchVideos(searchString,10);
                    let index = 0;
                    message.channel.send(`
__**Résultats de la recherche :**__
${videos.map(video2 => `**${++index} -** ${video2.title}`).join('\n')}
Veuillez sélectionner l'un des résultats,allant de 1 à 10.
                    `);
                    // eslint-disable-next-line max-depth
                    try {
                        var response = await message.channel.awaitMessages(
                            msg2 => (msg2.content > 0 && msg2.content < 11,{
                            maxMatches: 1,time: 60000,errors: ['time']
                        })
                      );
                    } catch (err) {
                        console.error(err);
                        return message.channel.send(':no_entry: **Aucun ou un numéro invalide a été sélectionné,annulation de la recherche.**');
                    }
                    const videoIndex = parseInt(response.first().content);
                    
                    var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
                } catch (err) {
                    console.error(err);
                    return message.channel.send(`? **Je n'ai pu obtenir des résultats.**`);
                }
            }
            return handleVideo(video,voiceChannel);
        }
    } else if (command === 'skip') {
        if (!serverQueue) return message.channel.send(`⛔ **Il n'y a rien que je puisse passer pour vous.**`);
        serverQueue.connection.dispatcher.end('La commande skip a bien été utilisée.');
        return undefined;
    } else if (command === 'stop') {
        let bureauBot = bot.channels.cache.get("629993073929224192");
        if (!serverQueue) return message.channel.send(`⛔ **Il n'y a rien que je puisse arrêter pour vous.**`);
        serverQueue.songs = [];
        serverQueue.connection.dispatcher.end('La commande stop à bien été utilisée.');
        bureauBot.join()
        return undefined;
    } else if (command === 'volume') {
        if (!serverQueue) return message.channel.send(`:no_entry: **Il n'y a rien qui est joué.**`);
        if (!args[1]) return message.channel.send(`**Le volume actuel est de : **${serverQueue.volume}**`);
        serverQueue.volume = args[1];
        serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
        return message.channel.send(`:loud_sound: **J'ai mis le volume à : ${args[1]}**`);
    } else if (command === 'shazam') {
        if (!serverQueue) return message.channel.send(`:no_entry: **Il n'y a rien qui est joué.**`);
        return message.channel.send(`? **Il est actuellement joué : ${serverQueue.songs[0].title}**`);
    } else if (command === 'queue') {
        if (!serverQueue) return message.channel.send(`:no_entry: **Il n'y a rien qui est joué.**`);
        return message.channel.send(`
__**Queue:**__
${serverQueue.songs.map(song => `**-** ${song.title}`).join('\n')}
**? Actuellement joué : __${serverQueue.songs[0].title}__**
        `);
    } else if (command === 'pause') {
        if (serverQueue && serverQueue.playing) {
            serverQueue.playing = false;
            serverQueue.connection.dispatcher.pause();
            return message.channel.send(`⏸ **J'ai mis la musique en pause pour vous.**`);
        }
        return message.channel.send(`:no_entry: **Il n'y a rien qui est joué.**`);
    } else if (command === 'resume') {
        if (serverQueue && !serverQueue.playing) {
            serverQueue.playing = true;
            serverQueue.connection.dispatcher.resume();
            return message.channel.send(`▶️ **J'ai repris la musique pour vous.**`);
        }
        return message.channel.send(`:no_entry: **Il n'y a rien qui est joué.**`);
    }

    return undefined;
});

async function handleVideo(video,playlist = false) {
    const serverQueue = queue.get(message.guild.id);
    console.log(video);
    const song = {
        id: video.id,title: Util.escapeMarkdown(video.title),url: `https://www.youtube.com/watch?v=${video.id}`
    };
    if (!serverQueue) {
        const queueConstruct = {
            textChannel: message.channel,voiceChannel: voiceChannel,connection: null,songs: [],volume: 5,playing: true
        };
        queue.set(message.guild.id,queueConstruct);

        queueConstruct.songs.push(song);

        try {
            var connection = await voiceChannel.join();
            queueConstruct.connection = connection;
            play(message.guild,queueConstruct.songs[0]);
        } catch (error) {
            console.error(`I Could not join the voice channel: ${error}`);
            queue.delete(message.guild.id);
            return message.channel.send(`⛔ **Je ne peux pas rejoindre le salon vocal : __${error}__**`);
        }
    } else {
        serverQueue.songs.push(song);
        console.log(serverQueue.songs);
        if (playlist) return undefined;
        else return message.channel.send(`✅ **__${song.title}__ a bien été ajouté à la queue.**`);
    }
    return undefined;
}

function play(guild,song) {
    const serverQueue = queue.get(guild.id);

    if (!song) {
        serverQueue.voiceChannel.leave();
        queue.delete(guild.id);
        return;
    }
    console.log(serverQueue.songs);

    const dispatcher = serverQueue.connection.play(ytdl(song.url))
        .on('finish',reason => {
            if (reason === 'Stream is not generating quickly enough.') message.channel.send('? **Musique terminée.**');
            else console.log(reason);
            serverQueue.songs.shift();
            play(guild,serverQueue.songs[0]);
        })
        .on('error',error => console.error(error));
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);

    serverQueue.textChannel.send(`:notes: **Je commence a jouer : __${song.title}__**`);
}```

有人可以帮助我吗? 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)