درود,
1 - میخوام موقعیت مکانی کاربر روی نقشه گوگل یا گوگل مپ رو دریافت و در دیتابیس ذخیره کنم ,
و مهمتر اینکه در سمت پنل میریت هم بتونم این موقعیت ذخیره شده رو بازیابی کنم تا بتونم آدرس (لوکیشن) مشخص شده رو نقشه رو نشون بدم .
برای این کار باید به چه صورتی عمل کنم ؟
2 - در حالت عادیش مثلا در فروشگاه دیجی کالا ابتدا از کاربر اجازه گرفته میشه (که این فکر کنم از سیاست های خود گوگل هست) و بعد هم خود کاربر باید موقعیت مکانش رو انتخاب میکنه :
آیا میشه بدون اجازه کاربر موقعیت مکانیش رو دریافت کرد ؟
یعنی موقعیت مکانیش روی گوگل مپ رو بدست آورد و نشون داد؟
و یا کاربر مثل برنامه گوگل مپ روی اندروید با زدن یه دکمه موقعیت مکانیش رو بدست بیاره.
موقعیت مکانی خصوصی می باشد، و دسترسی به آن تنها به کاربر بستگی دارد.( قبلا خودم سعی در انجام این کار داشتم با ip کاربر اما تنها مکان شرکت اینترنتی کاربر را نمایش می دهد)
حالا اگه به همین روش دیجی کالا و با اجازه کاربر موقعیت مکانی رو دریافت و در دیتابیس ذخیره کنم , به چه شکل باید کار کنم ؟
باید از api های گوگل استفاده کنید. اکثرا کدهاش هم با جاوااسکریپت:
مهندس علیزاده این مورد YOUR_API_KEY چیه ؟ بدون داشتن این مورد کد ها کار نمیکنه .
استاد مدائنی من موردی که معرفی کردید رو که اجرا میکنم همش موقعیت تهرانرو نشون میده:
ولی من الان تهران نیستم ! چطور میتونم موقعیت جاری کاربر رو نشون بدم ؟
و مهمترین مورد در دیتابیس ذخیره کردن Longitude و longitude اون محلی هست که کاربر انتخاب میکنه و بعد هم امکان Reverse کردن و نشون دادن اون مکان در سمت مدیرت با توجه به اون طول و عرض ذخیره شده هست ,
برای این مورد نمونه کد سراغ دارید که در Asp.net Mvc چطور انجامش بدم ؟
تمامی این موارد در مستندات گوگل وجود دارد تنها باید آنها را مطالعه کنید.
API Key را میتوان از لینک روبه رو دریافت کنید: Get API Key | Google Maps JavaScript API | Google Developers
ممنون مهندس Api Code رو گرفتم .
این sample که معرفی کردید , ارتباط دیتابیسش رو برقرار کردم و Api Code رو هم بهش دادم ولی هیچی رو نشون نمیده , فقط یه صفحه خاکستری میاد و نقشه نمیاد !
مهندس این مورد برای بازیابی یک لوکیشن از دیتابیس هست ,
زمانی که کاربر یک لوکیشن رو انتخاب میکنه اون موقع چطوری باید Latitude و Longitude مکانی که کاربر انتخاب میکنه رو بدست آورد ؟
میخوام یک Button زیر نقشه بزام و بعد از اینکه کاربر مکان خودش رو انتخاب کرد و روی Button کلیک کرد با یه تابع ایجکس Latitude و Longitude مکان انتخابی به یه اکشن فرستاده بشه تا ذخیره بشه.
امکاناتی که میخواید را نمیتوان با سرچ پیدا کنید( یا کد آماده ) همان طور که گفتم باید با مطالعه مستندات گوگل نحوه کار با آن را یاد بگیرید و براساس امکاناتی که در اختیار شما قرار میگیرد سیستم موردنظر را پیاده سازی کنید.
لطفا لینک مستندات مرتبط با Mvc رو بدید (اگه وجود داره) ؟
ظاهرا همه کد ها رو با Html5 و JavaScript انجام میدن درسته ؟
چون من Jquery رو حرفه ای بلدم ولی JavaScript رو درحد چندتا کلمه و تابع بیشتر کار نکردم و بخاط همین دنبال کد آماده بودم.
مستندات گوگل کفایت می کند، شما شروع کنید به مشکل خوردید آن را مطرح کنید تا برطرف کنیم
درود دوباره :
مستندات رو خوندم , کد زیر محل جاری کاربر رو نشون میده :
<style> #map { height: 400px; width: 100%; } </style> <h3>My Google Maps Demo</h3> <div id="map"></div> <script> if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (Mylocation) { var GeoAddress = new google.maps.LatLng(Mylocation.coords.latitude, Mylocation.coords.longitude); var mapOptions = { center: GeoAddress, zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), mapOptions); var marker = new google.maps.Marker({ position: GeoAddress, map: map }); google.maps.event.addListener(marker, "click", function (e) { alert(Mylocation.coords.latitude + " " + Mylocation.coords.longitude); }); }); } else { alert('مرورگر شما از موقعیت یاب گوگل پشتیبانی نمیکند'); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD6_DUVZ51toYnacB4VuNIab7YXDf2zFUg&callback=initMap"> </script>
حالا
1 - چه کدی اضافه کنم که نشانگر (Marker) رو بشه تکون داد و محلش رو تغییر داد ؟
2 - چطوری مختصات Marker بعد از تغییر دادن رو بدست بیارم ؟تابعی هست مختصات محل Marker رو نشون بده ؟
(چون بعد از تغییر دادن محل Marker مختصات اون مهمه نه Mylocation.coords )
فکر کنم کد زیر بعد از رویداد جابه جا کردن Marker مختصاتش رو نشون میده :
google.maps.event.addListener(marker, "dragend", function (args) { alert(args.latLng); });
اگه اشتباه میکنم لطفا بگید .
حالا فقط اگه بگید چطوری میتونم قابلیت درگ گردن Marker رو فعال کنم تمومه.
مستندات مربوط به Marker:
این کد که برای گرفتن مختضات محل Marker ازش استفاده مکنم :
google.maps.event.addListener(marker, "dragend", function (args) { alert(args.latLng); });
مختصات رو در قالب یک شی google.maps.LatLng به ما میده .
آیا میشه مختصات محل Marker رو بصورت Latitude و Longitude بدست آورد ؟
به چند صورت این کار قابل انجام است.
طبق مستندات دو تابع برای این کار تهیه شده است به شرح زیر:
marker = new google.maps.Marker({ position: latlng, map: map }); //end marker //Add listener google.maps.event.addListener(marker, "click", function (event) { alert(this.position); }); //end addListener
google.maps.event.addListener(marker, 'dragend', function (event) { document.getElementById("latbox").value = this.getPosition().lat(); document.getElementById("lngbox").value = this.getPosition().lng(); });
پیشنهاد میدم از دومی استفاده بشه.
بسم الله
سلام بر شما
بنده هم همین درخواست رو برا وردپرس داشتم میتونید کمک کنید ؟
دریافت موقعیت کاربر مثل این تصویر باشه که کاربر توسط نقشه با جابجاکردن نشانگر قرمز رنگ آدرسش رو روی نقشه قرار بده و در کادر جستجوی مح آدرسش رو نشون بده.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)