diff --git a/GanjooRazor/Areas/User/Pages/Editor.cshtml b/GanjooRazor/Areas/User/Pages/Editor.cshtml index 5e4b478b..15d4520e 100644 --- a/GanjooRazor/Areas/User/Pages/Editor.cshtml +++ b/GanjooRazor/Areas/User/Pages/Editor.cshtml @@ -131,6 +131,26 @@ var widget = document.getElementById('new-location-widget'); var isHidden = widget.style.display === 'none' || widget.style.display === ''; widget.style.display = isHidden ? 'block' : 'none'; + // the map is a secondary way to set the coordinates (typing them in from Wikipedia/GeoHack, + // per the hint text, is the primary one) but it's shown right away, not behind another + // click, since a hidden-behind-a-link map is easy to miss entirely + if (isHidden && geoDateTagMap == null) { + geoDateTagMap = L.map('geotag-map').setView([32.4279, 53.6880], 5); // Iran-centered default + L.tileLayer.provider('OpenStreetMap').addTo(geoDateTagMap); + geoDateTagMap.on('click', function (e) { + if (geoDateTagMarker != null) { + geoDateTagMap.removeLayer(geoDateTagMarker); + } + geoDateTagMarker = L.marker(e.latlng).addTo(geoDateTagMap); + document.getElementById('geotag-new-location-lat').value = e.latlng.lat; + document.getElementById('geotag-new-location-lng').value = e.latlng.lng; + }); + } + if (isHidden && geoDateTagMap != null) { + // the map was created while its container was display:none (or is just being + // re-shown), so Leaflet needs a nudge to recalculate its size once it's visible + setTimeout(function () { geoDateTagMap.invalidateSize(); }, 100); + } } // opens the entered lat/lng in Google Maps (viewLocation() comes from bk.js) so the user can @@ -147,30 +167,6 @@ viewLocation(lat, lng); } - // optional fallback for when the user does know roughly where to click (a big, easily - // recognizable place) - most of the time typing coordinates copied from Wikipedia/GeoHack - // (see the hint text) is faster and far more precise than clicking a small embedded map - function toggleGeoDateTagMapPicker() { - var mapContainer = document.getElementById('geotag-map-container'); - var isHidden = mapContainer.style.display === 'none' || mapContainer.style.display === ''; - mapContainer.style.display = isHidden ? 'block' : 'none'; - if (isHidden && geoDateTagMap == null) { - geoDateTagMap = L.map('geotag-map').setView([32.4279, 53.6880], 5); // Iran-centered default - L.tileLayer.provider('OpenStreetMap').addTo(geoDateTagMap); - geoDateTagMap.on('click', function (e) { - if (geoDateTagMarker != null) { - geoDateTagMap.removeLayer(geoDateTagMarker); - } - geoDateTagMarker = L.marker(e.latlng).addTo(geoDateTagMap); - document.getElementById('geotag-new-location-lat').value = e.latlng.lat; - document.getElementById('geotag-new-location-lng').value = e.latlng.lng; - }); - } - if (isHidden && geoDateTagMap != null) { - setTimeout(function () { geoDateTagMap.invalidateSize(); }, 100); - } - } - function renderPendingGeoDateTags() { var container = document.getElementById('pending-geotag-suggestions'); if (geoDateTagSuggestions.length == 0) { @@ -1916,17 +1912,15 @@ else 🗺️ مشاهده روی نقشه
- برای پیدا کردن مختصات دقیق یک مکان، بهخصوص مکانهای کمتر شناختهشده، لازم نیست حدس بزنید یا روی نقشه کلیک کنید: + برای پیدا کردن مختصات دقیق یک مکان، بهخصوص مکانهای کمتر شناختهشده، لازم نیست حدس بزنید یا روی نقشهٔ زیر کلیک کنید: صفحهٔ آن مکان را در ویکیپدیا باز کنید؛ نزدیک عنوان صفحه یا در بخش اطلاعات (Infobox) لینکی به مختصات جغرافیایی وجود دارد (معمولاً به سایت geohack.toolforge.org میرود). عرض جغرافیایی (Latitude / N) و طول جغرافیایی (Longitude / E) را از همان صفحه کپی کنید و در دو فیلد بالا وارد کنید، سپس با «🗺️ مشاهده روی نقشه» درست بودن نقطه را بررسی کنید. - اگر ترجیح میدهید میتوانید بهجای این کار روی نقشه هم کلیک کنید، + برای مکانهای شناختهشدهتر، بهجای این کار میتوانید مستقیماً روی نقشهٔ زیر هم کلیک کنید تا مختصات همانجا پر شود؛ اما برای مکانهای کمشناختهشده روش بالا معمولاً دقیقتر و سریعتر است.
- +