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

提供:メタファー リファンタジオ 攻略Wiki
移動先:案内検索
編集の要約なし
編集の要約なし
20行目: 20行目:
<!-- Global Configuration -->
<!-- Global Configuration -->
<script>
<script>
// Initialize global namespace
// デバッグログ関数
function debugLog(message, data = null) {
    const timestamp = new Date().toISOString();
    const logMessage = data
        ? `[${timestamp}] ${message}: ${JSON.stringify(data)}`
        : `[${timestamp}] ${message}`;
    console.log(logMessage);
}
 
// GTP8の状態を監視する関数
function checkGTP8State() {
    debugLog('Current GTP8 State', {
        exists: !!window.GTP8,
        properties: window.GTP8 ? Object.keys(window.GTP8) : null,
        initializeMap: window.GTP8 ? typeof window.GTP8.initializeMap : null,
        api: window.GTP8 ? !!window.GTP8.api : null,
        popups: window.GTP8 ? !!window.GTP8.popups : null
    });
}
 
// スクリプトローダー
function loadScript(url) {
    return new Promise((resolve, reject) => {
        debugLog(`Loading script: ${url}`);
        const script = document.createElement('script');
        script.src = url;
        script.onload = () => {
            debugLog(`Successfully loaded: ${url}`);
            checkGTP8State();
            resolve();
        };
        script.onerror = () => {
            debugLog(`Failed to load: ${url}`);
            reject(new Error(`Failed to load ${url}`));
        };
        document.head.appendChild(script);
    });
}
 
// 初期化
window.GTP8 = {
window.GTP8 = {
     initializeMap: null,
     initializeMap: null,
32行目: 71行目:
};
};


// Initialize API base URL
debugLog('Initial GTP8 setup complete');
(function() {
checkGTP8State();
    const currentUrl = new URL(window.location.href);
    const baseUrl = currentUrl.origin + currentUrl.pathname.split('/').slice(0, -1).join('/');
    window.API_BASE_URL = baseUrl;
})();


// Map configuration
// 順番にスクリプトを読み込む
window.mapConfig = {
async function loadAllScripts() {
    imageUrl: '<!--{$img}-->',
     try {
    imageWidth: <!--{$imgwidth}-->,
         await loadScript('https://dq.h1g.jp/leaflet/gtp8-core.js');
    imageHeight: <!--{$imgheight}-->,
         debugLog('After core load', { initializeMap: typeof window.GTP8.initializeMap });
    minZoom: <!--{$minzoom}-->,
       
    maxZoom: <!--{$maxzoom}-->,
         await loadScript('https://dq.h1g.jp/leaflet/gtp8-icons.js');
    geoJsonPage: '<!--{$geojson}-->',
         await loadScript('https://dq.h1g.jp/leaflet/gtp8-popups.js');
     iconUrls: {
         await loadScript('https://dq.h1g.jp/leaflet/gtp8-api.js');
         icon1: '<!--{$icon1|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-blue.png"}-->',
       
         icon2: '<!--{$icon2|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-red.png"}-->',
        // init.jsを読み込む前に最終チェック
         icon3: '<!--{$icon3|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-violet.png"}-->',
        checkGTP8State();
         icon4: '<!--{$icon4|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-green.png"}-->',
       
         icon5: '<!--{$icon5|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-gold.png"}-->',
         await loadScript('https://dq.h1g.jp/leaflet/gtp8-init.js');
         icon6: '<!--{$icon6|default:"https://dq.h1g.jp/img/marker-icon-img/marker-icon-black.png"}-->'
         debugLog('All scripts loaded');
    },
          
    filters: {
         // 最終状態チェック
         filter1: '<!--{$filter1|default:"分類1"}-->',
         checkGTP8State();
         filter2: '<!--{$filter2|default:"分類2"}-->',
    } catch (error) {
         filter3: '<!--{$filter3|default:"分類3"}-->',
         debugLog('Script loading error', error);
         filter4: '<!--{$filter4|default:"分類4"}-->',
         alert('スクリプトの読み込み中にエラーが発生しました。');
         filter5: '<!--{$filter5|default:"分類5"}-->',
         filter6: '<!--{$filter6|default:"分類6"}-->'
     }
     }
}
// ページ読み込み完了時に実行
$(document).ready(() => {
    debugLog('Document ready, starting script load');
    loadAllScripts();
});
// エラーハンドリング
window.onerror = function(msg, url, line, col, error) {
    debugLog('Global error caught', {
        message: msg,
        url: url,
        line: line,
        column: col,
        error: error?.toString()
    });
    return false;
};
};
</script>
</script>


<!-- Application Scripts -->
<!-- Map Container -->
<script src="https://dq.h1g.jp/leaflet/gtp8-core.js"></script>
<div id="map" style="width: 100%; height: 600px;"></div>
<script src="https://dq.h1g.jp/leaflet/gtp8-icons.js"></script>
<script src="https://dq.h1g.jp/leaflet/gtp8-popups.js"></script>
<script src="https://dq.h1g.jp/leaflet/gtp8-api.js"></script>
<script src="https://dq.h1g.jp/leaflet/gtp8-init.js"></script>
</includeonly>
</includeonly>

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