From a7d62c58032915e23bfda2eb36b2dcf0fc5ae4ba Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Fri, 11 Oct 2024 15:00:52 +0800 Subject: feat: add query params for crs --- src/dumbymap.mjs | 10 ++++++++-- src/editor.mjs | 13 ++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 35a4614..593875e 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -111,11 +111,17 @@ export const markdown2HTML = (container, mdContent) => { * * @param {HTMLElement} container - The container element for the maps * @param {Object} options - Configuration options + * @param {string} options.crs - CRS in EPSG/ESRI code, see epsg.io * @param {number} [options.delay=1000] - Delay before rendering maps (in milliseconds) * @param {Function} options.mapCallback - Callback function to be called after map rendering */ -export const generateMaps = (container, { layouts = [], delay, renderCallback } = {}) => { - /** Prepare Contaner/HTML Holder/Showcase */ +export const generateMaps = (container, { + crs = 'EPSG:4326', + layouts = [], + delay, + renderCallback, +} = {}) => { + /** Prepare Contaner/HTML-Holder/Showcase */ container.classList.add('Dumby') delete container.dataset.layout container.dataset.layout = defaultLayouts[0].name diff --git a/src/editor.mjs b/src/editor.mjs index 04c0502..e12073f 100644 --- a/src/editor.mjs +++ b/src/editor.mjs @@ -14,15 +14,20 @@ import LeaderLine from 'leader-line' */ // Set up Containers {{{ -/** Variables about dumbymap and editor **/ + +/** Variables: page */ const url = new URL(window.location) +const pageParams = url.searchParams +const crs = pageParams.get('crs') ?? 'EPSG:4326' + +/** Variables: dumbymap and editor **/ const context = document.querySelector('[data-mode]') const dumbyContainer = document.querySelector('.DumbyMap') dumbyContainer.dataset.scrollLine = '' const textArea = document.querySelector('.editor textarea') let dumbymap -/** Variables about Reference Style Links in Markdown */ +/** Variables: Reference Style Links in Markdown */ const refLinkPattern = /\[([^\x5B\x5D]+)\]:\s+(\S+)(\s["'](\S+)["'])?/ let refLinks = [] @@ -516,7 +521,9 @@ const menuForEditor = (event, menu) => { const updateDumbyMap = (callback = null) => { markdown2HTML(dumbyContainer, editor.value()) // debounceForMap(dumbyContainer, afterMapRendered) - dumbymap = generateMaps(dumbyContainer) + dumbymap = generateMaps(dumbyContainer, { + crs, + }) // Set onscroll callback const htmlHolder = dumbymap.htmlHolder htmlHolder.onscroll = updateScrollLine(htmlHolder) -- cgit v1.2.3-70-g09d2