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

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

alibahman47

عضویت از 1395/11/13

دریافت موقعیت مکانی کاربر روی نقشه گوگل و ذخیره در دیتابیس ؟

  • جمعه 28 مهر 1396
  • 23:35
تشکر میکنم

درود,

1 - میخوام موقعیت مکانی کاربر روی نقشه گوگل یا گوگل مپ رو دریافت و در دیتابیس ذخیره کنم ,

و مهمتر اینکه در سمت پنل میریت هم بتونم این موقعیت ذخیره شده رو بازیابی کنم تا بتونم آدرس (لوکیشن) مشخص شده رو نقشه رو نشون بدم .

برای این کار باید به چه صورتی عمل کنم ؟

2 - در حالت عادیش مثلا در فروشگاه دیجی کالا ابتدا از کاربر اجازه گرفته میشه (که این فکر کنم از سیاست های خود گوگل هست) و بعد هم خود کاربر باید موقعیت مکانش رو انتخاب میکنه :

آیا میشه بدون اجازه کاربر موقعیت مکانیش رو دریافت کرد ؟

یعنی موقعیت مکانیش روی گوگل مپ رو بدست آورد و نشون داد؟

و یا کاربر مثل برنامه گوگل مپ روی اندروید با زدن یه دکمه موقعیت مکانیش رو بدست بیاره.

پاسخ های این پرسش

تعداد پاسخ ها : 18 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 29 مهر 1396
  • 09:51

موقعیت مکانی خصوصی می باشد، و دسترسی به آن تنها به کاربر بستگی دارد.( قبلا خودم سعی در انجام این کار داشتم با ip کاربر اما تنها مکان شرکت اینترنتی کاربر را نمایش می دهد)

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • شنبه 29 مهر 1396
  • 11:30

حالا اگه به همین روش دیجی کالا و با اجازه کاربر موقعیت مکانی رو دریافت و در دیتابیس ذخیره کنم , به چه شکل باید کار کنم ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 29 مهر 1396
  • 11:35

باید از api های گوگل استفاده کنید. اکثرا کدهاش هم با جاوااسکریپت:

Google Maps APIs  |  Google Developers

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 29 مهر 1396
  • 11:36
کاربر سایت

alibahman47

عضویت از 1395/11/13

  • شنبه 29 مهر 1396
  • 15:41

مهندس علیزاده این مورد  YOUR_API_KEY چیه ؟ بدون داشتن این مورد کد ها کار نمیکنه .

استاد مدائنی من موردی که معرفی کردید رو که اجرا میکنم همش موقعیت تهرانرو نشون میده:

ولی من الان تهران نیستم ! چطور میتونم موقعیت جاری کاربر رو نشون بدم ؟

و مهمترین مورد در دیتابیس ذخیره کردن Longitude و longitude اون محلی هست که کاربر انتخاب میکنه و بعد هم امکان Reverse کردن و نشون دادن اون مکان در سمت مدیرت با توجه به اون طول و عرض ذخیره شده هست , 

برای این مورد نمونه کد سراغ دارید که در Asp.net Mvc چطور انجامش بدم ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 29 مهر 1396
  • 15:45

تمامی این موارد در مستندات گوگل وجود دارد تنها باید آنها را مطالعه کنید.

API Key را میتوان از لینک روبه رو دریافت کنید: Get API Key  |  Google Maps JavaScript API  |  Google Developers

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 29 مهر 1396
  • 15:47
کاربر سایت

alibahman47

عضویت از 1395/11/13

  • شنبه 29 مهر 1396
  • 20:35

ممنون مهندس Api Code رو گرفتم .

این sample که معرفی کردید , ارتباط دیتابیسش رو برقرار کردم و Api Code رو هم بهش دادم ولی هیچی رو نشون نمیده , فقط یه صفحه خاکستری میاد و نقشه نمیاد !

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • یکشنبه 30 مهر 1396
  • 21:39

مهندس این مورد برای بازیابی یک لوکیشن از دیتابیس هست ,

زمانی که کاربر یک لوکیشن رو انتخاب میکنه اون موقع چطوری باید Latitude  و  Longitude  مکانی که کاربر انتخاب میکنه رو بدست آورد ؟

میخوام یک Button زیر نقشه بزام  و بعد از اینکه کاربر مکان خودش رو انتخاب کرد و روی Button کلیک کرد با یه تابع ایجکس  Latitude  و  Longitude مکان انتخابی به یه اکشن فرستاده بشه تا ذخیره بشه.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • یکشنبه 30 مهر 1396
  • 22:40

امکاناتی که میخواید را نمیتوان با سرچ پیدا کنید( یا کد آماده ) همان طور که گفتم باید با مطالعه مستندات گوگل نحوه کار با آن را یاد بگیرید و براساس امکاناتی که در اختیار شما قرار میگیرد سیستم موردنظر را پیاده سازی کنید.

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • یکشنبه 30 مهر 1396
  • 23:00

لطفا لینک مستندات مرتبط با Mvc رو بدید (اگه وجود داره) ؟

ظاهرا همه کد ها رو با Html5 و JavaScript انجام میدن درسته ؟

چون من Jquery رو حرفه ای بلدم ولی JavaScript رو درحد چندتا کلمه و تابع بیشتر کار نکردم و بخاط همین دنبال کد آماده بودم.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • یکشنبه 30 مهر 1396
  • 23:03

مستندات گوگل کفایت می کند، شما شروع کنید به مشکل خوردید آن را مطرح کنید تا برطرف کنیم

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • چهارشنبه 3 آبان 1396
  • 15:58

درود دوباره :

مستندات رو خوندم , کد زیر محل جاری کاربر رو نشون میده :



<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  )

کاربر سایت

alibahman47

عضویت از 1395/11/13

  • چهارشنبه 3 آبان 1396
  • 16:11

فکر کنم کد زیر بعد از رویداد جابه جا کردن Marker مختصاتش رو نشون میده :

            google.maps.event.addListener(marker, "dragend", function (args) {
                alert(args.latLng);
            }); 

اگه اشتباه میکنم لطفا بگید .

حالا فقط اگه بگید چطوری میتونم قابلیت درگ گردن Marker رو فعال کنم تمومه.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 3 آبان 1396
  • 16:37
کاربر سایت

alibahman47

عضویت از 1395/11/13

  • شنبه 6 آبان 1396
  • 15:59

این کد که برای گرفتن مختضات محل Marker ازش استفاده مکنم :

google.maps.event.addListener(marker, "dragend", function (args) {
    alert(args.latLng);
});

مختصات رو در قالب یک شی google.maps.LatLng به ما میده .

آیا میشه مختصات محل Marker رو بصورت Latitude  و  Longitude   بدست آورد ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • یکشنبه 7 آبان 1396
  • 07:46

به چند صورت این کار قابل انجام است.

طبق مستندات دو تابع برای این کار تهیه شده است به شرح زیر:

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();
});

پیشنهاد میدم از دومی استفاده بشه.

کاربر سایت

orumdido

عضویت از 1399/04/22

  • یکشنبه 22 تیر 1399
  • 07:03

بسم الله

سلام بر شما

بنده هم همین درخواست رو برا وردپرس داشتم میتونید کمک کنید ؟

دریافت موقعیت کاربر مثل این تصویر باشه که کاربر توسط نقشه با جابجاکردن نشانگر قرمز رنگ آدرسش رو روی نقشه قرار بده و در کادر جستجوی مح آدرسش رو نشون بده.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)