التصنيفات
Android Uncategorized

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

يوجد العديد من التطبيقات التي تحتوي على ميزة مشاركة المواقع القريبة من المستخدم ولعل اكبر مثال على ذلك هو تطبيق واتس اب فهو يستخدم تقريباً نفس الفكرة المقدمة من قوقل وهي 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
اعادة نوع الموقع

يوجد العديد من البيانات ولكن قمت بذكر المهم منها يمكنك الاطلاع هنا على بقية الخيارات

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.