Home عالم الجمعية العامة للأمم المتحدة تصادق على خريطة جديدة للعالم تظهر بدقة أكبر...

الجمعية العامة للأمم المتحدة تصادق على خريطة جديدة للعالم تظهر بدقة أكبر حجم أفريقيا

7
0

ال الجمعية العامة للأمم المتحدة صادقت يوم الجمعة على خريطة جديدة للعالم تمثل أفريقيا بشكل أكثر دقة في حجمها الأكبر، تتويجا ل الحملة الأخيرة التي قادتها الدول الأفريقية ومجموعات المناصرة.

قرار الجمعة، الذي رعاه توغو وبدعم من أعضاء الاتحاد الأفريقي، تمت الموافقة عليه بأغلبية 164 دولة عضوًا لصالحه. وصوتت الولايات المتحدة فقط ضد مشروع القرار، في حين امتنعت ست دول أخرى ــ صربيا، وإستونيا، وجورجيا، وليتوانيا، ومولدوفا، وأوكرانيا ــ عن التصويت.

ويشجع التصويت الحكومات والمؤسسات في جميع أنحاء العالم على استبدال خريطة مركاتور التقليدية، التي يشيع استخدامها منذ القرن السادس عشر، بإسقاط الأرض المتساوية الذي يقول المدافعون والجغرافيون إنه يظهر المواقع بشكل أكثر دقة.

يظهر إسقاط مركاتور جرينلاند ويبدو أن أفريقيا بنفس الحجم تقريبًا، بينما في إسقاط الأرض المتساوية الذي يُظهر القارات بنسبها الحقيقية، فإن أفريقيا أكبر بـ 14 مرة من جرينلاند.

وقالت الأمم المتحدة في تقريرها إن قرار الجمعة لا يحظر إسقاط مركاتور أو يفرض بديلا عنه، لكنه يشجع فقط على استخدام إسقاط “الأرض المتساوية”.

ونقلت المنظمة الدولية عن وزير خارجية توغو روبرت دوسي قوله قبل التصويت إن “الخرائط تشكل فهمنا للعالم”. “إنهم يوجهون التعليم، ويغذون الخيال، ويؤثرون على التصورات الجماعية”.

وأشادت منظمة Africa No Filter، إحدى أبرز الناشطين في مجال تبني الخريطة الجديدة، بالقرار، وأضافت: “نريد أن نرى خرائط دقيقة في المدارس والكتب المدرسية وغرف الأخبار والشركات وعلى المنصات الرقمية التي يستخدمها مليارات الأشخاص كل يوم”.

وأشادت عدة دول باعتماد خريطة الأرض المتساوية وحثت على اعتمادها. “من الواضح أن تغيير الخريطة لا يغير العالم. لكن تصحيح التمثيل الذي يشوهه هو بالفعل عمل من أعمال الحقيقة.

<![CDATA[
(function () {
var EMBED_ID = "ap-readmore-embed";
var BTN_ID = "apReadMoreBtn";
var FADE_ID = "apReadMoreFade";
var STOP_SELECTOR = ".Page-below";
var SIGN_IN_GATE_SELECTOR = ".sign-in-gate-content";
var HIDDEN_ATTR = "data-ap-readmore-hidden";
var MOBILE_MQ = "(max-width: 767px)";

function ready(fn) {
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", fn);
} else {
fn();
}
}

function isElementNode(n) {
return n && n.nodeType === 1;
}

function cancelEvent(e) {
if (!e) return;
if (typeof e.preventDefault === "function") e.preventDefault();
if (typeof e.stopPropagation === "function") e.stopPropagation();
if (typeof e.stopImmediatePropagation === "function") e.stopImmediatePropagation();
e.cancelBubble = true;
e.returnValue = false;
}

function collapseDesktopEmbed(embed) {
if (!embed) return true;

if (!window.matchMedia(MOBILE_MQ).matches) {
var maybeWrappers = [
embed.parentElement,
embed.closest(".html-embed"),
embed.closest("[data-type='htmlembed']"),
embed.closest("[class*='embed']"),
embed.closest("[class*='Embed']")
].filter(Boolean);

embed.style.display = "none";
embed.style.margin = "0";
embed.style.padding = "0";
embed.style.height = "0";
embed.style.minHeight = "0";
embed.style.overflow = "hidden";

maybeWrappers.forEach(function (el) {
el.style.margin = "0";
el.style.padding = "0";
el.style.height = "0";
el.style.minHeight = "0";
el.style.overflow = "hidden";
});

if (embed.parentNode) {
embed.parentNode.removeChild(embed);
}

return true;
}

return false;
}

ready(function () {
var embed = document.getElementById(EMBED_ID);
var btn = document.getElementById(BTN_ID);
var fade = document.getElementById(FADE_ID);
if (!embed || !btn) return;

if (collapseDesktopEmbed(embed)) return;

var signInGate = document.querySelector(SIGN_IN_GATE_SELECTOR);
if (signInGate) {
embed.innerHTML = "";
return;
}

// — Analytics: impression when embed enters viewport —
if ("IntersectionObserver" in window) {
var io = new IntersectionObserver(function (entries, observer) {
if (entries[0].isIntersecting) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ event: "ap_readmore_impression" });
observer.disconnect();
}
}, { threshold: 0 });
io.observe(btn);
}

var stopEl = document.querySelector(STOP_SELECTOR);
if (!stopEl) return;

var rootCandidates = [
embed.closest(".Page"),
embed.closest("article"),
embed.closest("main"),
document.body
].filter(Boolean);

var root = rootCandidates.find(function (c) {
return c.contains(stopEl);
}) || document.body;

var all = root.getElementsByTagName("*");
var hidden = [];

for (var i = 0; i

تم تصميم خريطة مركاتور من قبل رسام الخرائط الفلمنكي جيراردوس مركاتور لمساعدة الملاحين الأوروبيين في البحر، لكن المدافعين عنها يقولون إنها شوهت الكتل الأرضية من خلال توسيع المناطق القريبة من القطبين مثل أمريكا الشمالية وجرينلاند مع تقليص أفريقيا وأمريكا الجنوبية.

من ناحية أخرى، يتبع إسقاط الأرض المتساوية لعام 2018 انحناء الأرض ويظهر القارات بنسبها الحقيقية.

قم بالتسجيل في Morning Wire:
تعرض نشرتنا الإخبارية الرئيسية أهم العناوين الرئيسية لهذا اليوم.

{
if (value !== undefined && value !== null && value !== ”) {
url.searchParams.set(key, value);
}
});

return url.toString();
} catch (err) {
console.warn(‘Unable to build referrer URL with UTM params:’, err);
return window.location.href;
}
}

function nlLoadRecaptchaScriptNLMW25(siteKey, callback) {
if (typeof window.grecaptcha !== ‘undefined’) {
callback && callback();
return;
}

const existingScript = document.querySelector(‘script[src*=”recaptcha/api.js”]’);
if (existingScript) {
const checkInterval = setInterval(() => {
if (typeof window.grecaptcha !== ‘undefined’) {
clearInterval(checkInterval);
callback && callback();
}
}, nlRecaptchaCheckIntervalNLMW25);
return;
}

const script = document.createElement(‘script’);
script.src = `https://www.google.com/recaptcha/api.js?render=${encodeURIComponent(siteKey)}`;
script.async = true;
script.defer = true;
script.onload = () => callback && callback();
script.onerror = () => {
console.error(‘Failed to load reCAPTCHA script’);
callback && callback(false);
};
document.head.appendChild(script);
}

function nlWaitForRecaptchaNLMW25(callback, maxAttempts = nlRecaptchaMaxAttemptsNLMW25) {
let attempts = 0;

const checkRecaptcha = () => {
attempts++;
if (
typeof window.grecaptcha !== ‘undefined’ &&
typeof window.grecaptcha.execute === ‘function’
) {
callback(true);
} else if (attempts token && token.length > 0 ? token : null)
.catch(error => {
const errorMsg = error?.message || String(error);
if (
errorMsg.includes(‘No reCAPTCHA clients’) ||
errorMsg.includes(‘not initialized’) ||
errorMsg.includes(‘Invalid site key’)
) {
throw new Error(‘recaptcha_failed’);
}
throw error;
});
}

const nlEmbedsNLMW25 = document.querySelectorAll(‘[data-ap-newsletter-embed-nlmw25]’);

nlEmbedsNLMW25.forEach((rootNLMW25, idxNLMW25) => {
const formNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-form-nlmw25’);
const emailInputNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-input-nlmw25’);
const checkboxNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-checkbox-nlmw25’);
const errorElNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-error-nlmw25’);
const helpElNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-help-nlmw25’);
const botFieldNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-bot-field-nlmw25’);
const recaptchaDivNLMW25 = rootNLMW25.querySelector(‘.ap-newsletter-recaptcha-nlmw25’);

let nlIsSubmittingNLMW25 = false;

const newsletterListNLMW25 = nlConfigNLMW25.defaultNewsletterList;
const recaptchaSiteKeyNLMW25 = nlConfigNLMW25.recaptchaSiteKey;
const requestReferrerNLMW25 = nlBuildReferrerUrlNLMW25(nlConfigNLMW25.referrerUtmParams);

const emailIdNLMW25 = `nl-email-nlmw25-${idxNLMW25}`;
const helpIdNLMW25 = `nl-help-nlmw25-${idxNLMW25}`;
const errIdNLMW25 = `nl-error-nlmw25-${idxNLMW25}`;
const recaptchaIdNLMW25 = `recaptcha-nlmw25-${idxNLMW25}`;

emailInputNLMW25.id = emailIdNLMW25;
helpElNLMW25.id = helpIdNLMW25;
errorElNLMW25.id = errIdNLMW25;
if (recaptchaDivNLMW25) {
recaptchaDivNLMW25.id = recaptchaIdNLMW25;
if (recaptchaSiteKeyNLMW25) {
recaptchaDivNLMW25.setAttribute(‘data-sitekey’, recaptchaSiteKeyNLMW25);
}
}
emailInputNLMW25.setAttribute(‘aria-describedby’, `${helpIdNLMW25} ${errIdNLMW25}`);

const nlSetErrorNLMW25 = (msg) => {
errorElNLMW25.textContent = msg || ”;
errorElNLMW25.style.display = msg ? ‘block’ : ‘none’;
};

const nlHideErrorNLMW25 = () => nlSetErrorNLMW25(”);

const nlSetSubmittedNLMW25 = () => {
rootNLMW25.classList.add(‘is-submitted-nlmw25’);
emailInputNLMW25.value = ‘SUBMITTED’;
emailInputNLMW25.style.fontWeight = ‘bold’;
emailInputNLMW25.setAttribute(‘readonly’, ‘readonly’);
emailInputNLMW25.setAttribute(‘aria-invalid’, ‘false’);
nlHideErrorNLMW25();
};

const nlSubscribeNLMW25 = (tokenNLMW25) => {
if (nlIsSubmittingNLMW25) return;

if (botFieldNLMW25?.value) {
console.warn(‘Bot field filled –‘, botFieldNLMW25.value);
nlSetErrorNLMW25(nlConfigNLMW25.messages.botBlocked);
return;
}

const emailNLMW25 = String(emailInputNLMW25.value || ”).trim();
const emailOkNLMW25 = nlIsValidEmailNLMW25(emailNLMW25);
const disclaimerOkNLMW25 = checkboxNLMW25.checked;

if (!emailOkNLMW25 && !disclaimerOkNLMW25) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.invalidBoth);
emailInputNLMW25.setAttribute(‘aria-invalid’, ‘true’);
emailInputNLMW25.focus();
return;
}

if (!emailOkNLMW25) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.invalidEmail);
emailInputNLMW25.setAttribute(‘aria-invalid’, ‘true’);
emailInputNLMW25.focus();
return;
}

if (!disclaimerOkNLMW25) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.disclaimerRequired);
checkboxNLMW25.focus();
return;
}

nlIsSubmittingNLMW25 = true;

const headersNLMW25 = { ‘Content-Type’: ‘application/json’ };
if (tokenNLMW25) {
headersNLMW25[nlConfigNLMW25.recaptchaHeader] = tokenNLMW25;
}

fetch(nlConfigNLMW25.apiUrl, {
method: ‘POST’,
headers: headersNLMW25,
body: JSON.stringify({
emailId: emailNLMW25,
newsLetterListToSubscribe: newsletterListNLMW25
}),

/*
This is the key change:
send the current page URL + UTM params as the referrer.
Example:
https://…/article/… ?utm_source=embed
*/
referrer: requestReferrerNLMW25,
referrerPolicy: ‘strict-origin-when-cross-origin’
})
.then(response =>
response.json()
.then(data => ({ status: response.status, data }))
.catch(() => ({ status: response.status, data: null }))
)
.then(result => {
nlIsSubmittingNLMW25 = false;

const hasVerificationErrorNLMW25 = result.data && (
result.data.message?.includes(‘Verification Failed’) ||
result.data.error?.includes(‘Verification Failed’)
);

if (hasVerificationErrorNLMW25) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.verificationFailed);
return;
}

if (result.status === 200) {
if (typeof window.NLSignup === ‘function’) {
try { window.NLSignup(emailNLMW25); } catch (err) {}
}

window.dispatchEvent(new CustomEvent(‘nl:newsletterSignup:nlmw25’, {
detail: {
email: emailNLMW25,
source: ‘Morning Wire Embed’,
newsletters: newsletterListNLMW25,
referrer: requestReferrerNLMW25
}
}));

nlSetSubmittedNLMW25();
} else {
const errorMsgNLMW25 =
result.data?.message ||
result.data?.error ||
nlConfigNLMW25.messages.genericError;

nlSetErrorNLMW25(errorMsgNLMW25);
}
})
.catch(error => {
nlIsSubmittingNLMW25 = false;
console.error(‘Newsletter subscription error:’, error);
nlSetErrorNLMW25(nlConfigNLMW25.messages.genericError);
});
};

const nlAttemptRecaptchaNLMW25 = () => {
if (!recaptchaSiteKeyNLMW25) {
nlWaitForRecaptchaNLMW25(isAvailable => {
if (!isAvailable) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.recaptchaRequired);
nlIsSubmittingNLMW25 = false;
return;
}

nlExecuteRecaptchaNLMW25()
.then(token => nlSubscribeNLMW25(token))
.catch(() => nlSubscribeNLMW25(null));
});
return;
}

nlLoadRecaptchaScriptNLMW25(recaptchaSiteKeyNLMW25, success => {
if (success === false) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.recaptchaLoadFail);
nlIsSubmittingNLMW25 = false;
return;
}

nlWaitForRecaptchaNLMW25(isAvailable => {
if (!isAvailable) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.recaptchaRequired);
nlIsSubmittingNLMW25 = false;
return;
}

const runExecuteNLMW25 = () => {
nlExecuteRecaptchaNLMW25()
.then(token => nlSubscribeNLMW25(token))
.catch(error => {
if (error?.message === ‘recaptcha_failed’) {
nlSetErrorNLMW25(nlConfigNLMW25.messages.recaptchaFailed);
nlIsSubmittingNLMW25 = false;
} else {
console.warn(‘reCAPTCHA error:’, error);
nlSubscribeNLMW25(null);
}
});
};

if (typeof window.grecaptcha.ready === ‘function’) {
window.grecaptcha.ready(runExecuteNLMW25);
} else {
runExecuteNLMW25();
}
});
});
};

formNLMW25.addEventListener(‘submit’, e => {
e.preventDefault();
if (rootNLMW25.classList.contains(‘is-submitted-nlmw25’) || nlIsSubmittingNLMW25) return;
nlHideErrorNLMW25();
nlAttemptRecaptchaNLMW25();
});

emailInputNLMW25.addEventListener(‘input’, () => {
nlHideErrorNLMW25();
emailInputNLMW25.setAttribute(‘aria-invalid’, ‘false’);
});

checkboxNLMW25.addEventListener(‘change’, nlHideErrorNLMW25);
});
})(NL_DEFAULT_CONFIG_NLMW25);
]]>

يقول الجغرافيون إن الخريطة التقليدية مفيدة فقط للملاحة.

يقول مارك مونمونييه، أستاذ الجغرافيا بجامعة سيراكيوز: “خارج نطاق تطبيق الملاحة الضيق للغاية، لا يوجد أي معنى لاستخدامه”.