راکت

دریافت lat long در openstreetmap از کاربر همانند دیوار

8 پاسخ

با عرض سلام و خسته نباشید خدمت تمامی عزیزان و بزرگواران
بنده وبسایتی شبیه به دیوار دارم قالب وردپرسش رو مینویسم
و احتیاج دارم به اینکه نقشه openstreetmap رو لود کنم و کاربر از طریق اون بتونه نقطه مکانی که هست رو ثبت کنه
دوستان عزیزی که تجربه دارند چطوری میشه انی کار رو انجام داد که:
کاربر لوکیشن رو به صورت دستی از نقشه انتخاب کنه
lat&long ادرس کاربر رو بتونم دریافت و ذخیره کنم و به نمایش دربیاورم
ممنون میشم کسانی که میتونن یاری کنن بنده رو بهم کمک کنند
متشکرم.

ثبت پرسش جدید

پاسخ‌ها

8
حسین شاکر
حسین شاکر
@hosseinshaker

ینی هیچکس تجربه ای نداره؟

محمد موسوی
محمد موسوی
@hamed70.2011

تخصص: طراح وب سایت

سلام دوست عزیز
برای اینکار می تونید از پلتفرم های ایرانی مثل نشان و مپ دات آی آر استفاده کنید.
من هر دو تاش رو استفاده کردم منتها از دومی رازی تر بودم
از این دو تا لینک می تونی استفاده کنی:
https://corp.map.ir
https://platform.neshan.org

شاید پاسخ شما همین‌جا باشد

حسین شاکر
حسین شاکر
@hosseinshaker

کسی راه بهتری نداشت نه؟!

سینا شاه‌اویسی
سینا شاه‌اویسی
@sinashahoveisi

تخصص: برنامه نویس

سلام باید دوتا eventListiner تعریف کنی به اسم click و dragend و توی این دوتا موقعیت انتخاب شده رو میتونی بگیری. توی کد زیر مقادیر توی یه input ذخیره میشه شما میتونی فرم بذاری و submit کنی یا اینکه درخواست ajax بزنی یا هرکار دیگه
این فایل HTML:

<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""/>
    <link rel="stylesheet" href="https://roocket.ir/src/style.css">
  </head>
  <body>
    <div id="map" class="m-0" style="height: 300px; width: 400px">
            <input type="number" name="longitude" id="longitude" value="51.3842437">
            <input type="number" name="latitude" id="latitude" value="35.6756238">
            <input type="hidden" class="address" value="">
        </div>
    <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>
    <script src="src/script.js"></script>
  </body>
</html>

اینم فایل js:


    const longitude = document.querySelector('#map > input#longitude')
    const latitude = document.querySelector('#map > input#latitude')
    let longitudeValue = longitude.value || 51.3842437
    let latitudeValue = latitude.value || 35.6756238

    const myMap = L.map('map').setView([latitudeValue, longitudeValue], 13);

    L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        maxZoom: 19,
        attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
    }).addTo(myMap);

    const marker = L.marker([latitudeValue , longitudeValue] , {
        draggable: true
    }).addTo(myMap);

    myMap.invalidateSize();

    marker.on('dragend', function (e) {
        latitude.value = marker.getLatLng().lat;
        longitude.val = marker.getLatLng().lng;
    });

    myMap.on('click', function (e) {
        marker.setLatLng(e.latlng);
        latitude.value = e.latlng.lat
        document.querySelector('#map > input#longitude').value = e.latlng.lng
    });

</body></html>

حسین شاکر
حسین شاکر
@hosseinshaker

@sinashahoveisi
ممنون از شما دوست عزیز
ولی خب کد هارو کپی کردم فقط صفحه سفید برام نمایش میده

من میخام خودکار لوکیشن کاربر رو روی نقشه نشون بده و کاربر بتونه اون رو تغییر بده و وقتی لوکیشن رو انتخاب کرد
برام داخل دوتا متغیر نگهش داره که داخل php بتونم ازش استفاده کنم.

آرمین امیری نسب
آرمین امیری نسب
@arminamirinasab

تخصص: برنامه نویس فرانت اند

اگه مشکل دریافت لوکیشن رو دارید که با استفاده از Geolocation API در جاوا اسکریپت می تونید این اطلاعات رو به دست بیارید ولی اگه مشکل قرار دادن این اطلاعاته من تا به پیش نیومده که بخوام از نقشه ها استفاده کنم.

حسین شاکر
حسین شاکر
@hosseinshaker

کلا این کد بالا رو که مینویسم صفحه سفید بم نشون میده

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام