مشاركة المواقع باستحدام Place Picker

احمد الجعيدمنذ 7 سنوات

يوجد العديد من التطبيقات التي تحتوي على ميزة مشاركة المواقع القريبة من المستخدم ولعل اكبر مثال على ذلك هو تطبيق واتس اب فهو يستخدم تقريباً نفس الفكرة المقدمة من قوقل وهي Place Picke وتتيح لك هذه الميزة السرعة في تحديد الاماكن القريبة من المستخدم بدون استخدام تقنيات مثل NearBy والتعقيدات واستهدام الخرايط .

في هذا الدرس ستتعرف على طريقة مشاركة الاماكن بشكل سريع واسطر قليله جداً.

بداية كل بداية في استخدام خدمات قوقل هو الحصول على API KEY ???? .

الحصول على API KEY :

ادخل الى هذه الرابط https://console.developers.google.com ثم قم باتباع الشرح الموجود اسفل الفيديو :

الحصول على SHA1

اضافة خدمات قوقل للتطبيق :

في ملف gradel.bulide قم بكتابة هذا السطر المضلل :


dependencies {
    compile 'com.google.android.gms:play-services-location:8.4.0'
}

الان الانتقال الى Activity :

قم باضافة Button او اي شئ تريد من المستخدم اذا قام بالضغط عليه ان يقوم بنقله الى شاشة اختيار مكان قريب، وفي امر الضغط لهذا Button نقوم بكتابة هذا السطرين :


 PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
                try {
                    startActivityForResult(builder.build(MainActivity.this), PLACE_PICKER_REQUEST);
                } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) {
                    e.printStackTrace();
                }

الان اذا قام المستخدم بالضغط على Button سيتم نقله الى شاشة اختيار مكان قريب .

لكن الان كيف اقوم باعادة النتائج اذا قام المستخدم بالاختيار ???? .

اعادة النتائج :

نحتاج الان اضافة دالة onActivityresult() لاعادة البيانات التي قام المستخدم باختيارها .


  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == PLACE_PICKER_REQUEST) {
            if (resultCode == RESULT_OK) {
                Place place = PlacePicker.getPlace(data, this);
                String place_name = String.format(getString(R.string.place_name), place.getName());
                String place_addrress = String.format(getString(R.string.place_adress), place.getAddress());
                name.setText(place_name);
                address.setText(place_addrress);
            }
        }
    }

عند اعادة النتائج سنلاحظ استخدامنا لـPlace حيث سيحتوي على جميع بيانات الموقع:


 Place place = PlacePicker.getPlace(data, this);

اهم البيانات التي يحتوي عليها Opject Place :

لم اتطرق لبعض الدوال ،، فقط المهم منها
الدالة وظيفتها
getId اعادة رقم الموقع وهو رقم فريد
getLatLng اعادة خطوط الطول والعرض للموقع الحالي
getName اعادة اسم الموقع الحالي
getPhoneNumber اعادة رقم الهاتف للموقع الحالي اذا كام متوفر
getPlaceTypes اعادة نوع الموقع "مطعم او صراف .. الخ"

النتيجة النهائية :

 

output.gif

كلمات دليلية:
0
إعجاب
1471
مشاهدات
0
مشاركة
0
متابع
متميز
محتوى رهيب

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !