「Widget:Custom map」の版間の差分

提供:メタファー リファンタジオ 攻略Wiki
移動先:案内検索
編集の要約なし
編集の要約なし
75行目: 75行目:
<!-- Load scripts sequentially -->
<!-- Load scripts sequentially -->
<script>
<script>
// GTP8名前空間の初期化(最初に実行)
window.GTP8 = {
    map: null,
    drawnItems: null,
    drawControl: null,
    editMode: false,
    api: {},
    popups: {},
    icons: {},
    // 初期化関数のプレースホルダー
    initializeMap: null
};
function loadScriptsSequentially() {
function loadScriptsSequentially() {
     function loadScript(src) {
     function loadScript(src) {
83行目: 96行目:
             script.onload = () => {
             script.onload = () => {
                 console.log('[Script Loader] Successfully loaded:', src);
                 console.log('[Script Loader] Successfully loaded:', src);
                // core.jsの読み込み直後の検証
                 if (src.includes('gtp8-core.js')) {
                 if (src.includes('gtp8-core.js')) {
                     console.log('[Script Loader] Core module check:', {
                    const initializeMapType = typeof window.GTP8.initializeMap;
                     console.log('[Script Loader] Core verification:', {
                         hasGTP8: !!window.GTP8,
                         hasGTP8: !!window.GTP8,
                         initializeMap: window.GTP8?.initializeMap,
                         initializeMapType: initializeMapType,
                         functionType: typeof window.GTP8?.initializeMap
                         initializeMapString: window.GTP8.initializeMap?.toString()
                     });
                     });
                    if (initializeMapType !== 'function') {
                        reject(new Error(`Invalid initializeMap type: ${initializeMapType}`));
                        return;
                    }
                 }
                 }
                 resolve();
                 resolve();
             };
             };
             script.onerror = (error) => {
             script.onerror = (error) => reject(new Error(`Failed to load ${src}: ${error}`));
                console.error('[Script Loader] Failed to load:', src, error);
                reject(new Error(`Failed to load ${src}`));
            };
             document.head.appendChild(script);
             document.head.appendChild(script);
         });
         });
     }
     }


     console.log('[Script Loader] Starting script loading sequence');
     const scripts = [
   
        'https://dq.h1g.jp/leaflet/gtp8-core.js',
    return loadScript('https://dq.h1g.jp/leaflet/gtp8-core.js')
         'https://dq.h1g.jp/leaflet/gtp8-icons.js',
         .then(() => {
         'https://dq.h1g.jp/leaflet/gtp8-popups.js',
            if (typeof window.GTP8?.initializeMap !== 'function') {
         'https://dq.h1g.jp/leaflet/gtp8-api.js',
                console.error('[Script Loader] Core module not properly initialized:', {
         'https://dq.h1g.jp/leaflet/gtp8-init.js'
                    GTP8: window.GTP8,
    ];
                    initializeMap: window.GTP8?.initializeMap
 
                });
    return scripts.reduce((promise, script) => {
                throw new Error('Core module not properly initialized');
        return promise.then(() => loadScript(script));
            }
    }, Promise.resolve());
            return loadScript('https://dq.h1g.jp/leaflet/gtp8-icons.js');
         })
        .then(() => loadScript('https://dq.h1g.jp/leaflet/gtp8-popups.js'))
         .then(() => loadScript('https://dq.h1g.jp/leaflet/gtp8-api.js'))
         .then(() => loadScript('https://dq.h1g.jp/leaflet/gtp8-init.js'))
        .catch(error => {
            console.error('[Script Loader] Loading sequence failed:', error);
            alert('モジュールの読み込みに失敗しました。\n詳細はコンソールを確認してください。');
        });
}
}


// Start loading when document is ready
$(document).ready(() => {
$(document).ready(() => {
     console.log('[Main] Document ready, starting initialization');
     console.log('[Main] Starting initialization with GTP8 state:', window.GTP8);
     loadScriptsSequentially().catch(error => {
     loadScriptsSequentially().catch(error => {
         console.error('[Main] Initialization error:', error);
         console.error('[Main] Loading sequence failed:', error);
        alert('モジュールの読み込みに失敗しました。\n詳細はコンソールを確認してください。');
     });
     });
});
});
</script>
</script>
</includeonly>
</includeonly>

2024年11月10日 (日) 21:39時点における版