القائمة الرئيسية

الصفحات

التعامل مع Map #7 : كيفية اضافة نقطة Marker على الخريطة maps داخل برنامج اندرويد ستوديو

 

التعامل مع Map #7 : كيفية اضافة نقطة Marker على الخريطة maps داخل برنامج اندرويد ستوديو

كيفية اضافة نقطة على الخريطة maps داخل برنامج اندرويد ستوديو 


استكمالات في دروس تطوير تطبيقات الاندرويد والتعامل مع maping نقدم لكم شرح كيفية اضافة نقطة على الخريطة "تحديد موقع على الخريطة" مع امكانية اظهار التفاصيل وبدونها وكيف تستطيع اضافة اكثر من نقطة او اضافة نقطة واحده كل هذا سوف نتعرف عليه اليوم , الشرح بسيط لا تقلق فقط ركز فيه وستجد ان الامر بسيط .


عملية تصميم تطبيق اندرويد مجاني ليست صعبه وفي نفس الوقت ليست سهله فالبعض منكم يعتقد تطبيقات أندرويد صعبه ومعقده ولن يتمكن من النجاح في مجال تطوير تطبيقات اندرويد ولكن الامر عكس ذلك وانا كنت واحد منكم صراحة , ولذلك قمت بتاسيس موقع جي كودرس لتعليمكم كيفية تصميم تطبيق اندرويد مجاني وشروحات متنوعه وعديدة في البرمجة واثراء المحتوى العربي بالبرمجة وخاصة مجال تطبيقات أندرويد حيث يعد من اكثر المجالات التي عليها طلب كبير في سوق العمل .


مجال تطبيقات أندرويد واحد من اكبر المجالات التي يبحث عليها كل صاحب شركة تطوير تطبيقات الجوال لان تطوير تطبيقات الهواتف الذكية اصبح يحظى بنسبة كبيره من الاهتمام بسبب كثرة الاجهزة الذكية في الوقت الحالي وايضا تطبيقات أندرويد و تطبيقات الايفون اصبحت كثيرة وتوفر خدمات لنا كمستخدمين توفر علينا كثير من الوقت وهل قد سبق وان خطر ببالك فكرة تطوير تطبيقات الهواتف الذكية تحل مشكلة معينه لم تجد لها حل ؟ قد يكون هذا التطبيق الذي تفكر به واحد من انجح تطبيقات أندرويد ويجني عليك المال الوفير لذلك ابدء بتعلم البرمجة لتنفيذة .


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


قم بعمل mMap.setOnMapClickListener(this); وبعدها سوف يطلب منك ان يقوم بعمل method و implements قم بالموافقه وسوف تحل المشكلة " متزعلوش ووافق على اللي يطلبه منك 😂💔 " , وقم بكتابة الكود التالي وهو ببساطة عن طريقة عمل marker على الخريطة وبالنسبه لكود mMap.clear فهو مسؤول عن طريق ازالة النقطة القديمه لاضافة نقطة اخرى .



الكود السابق بلغة جافا


@Override
public void onMapClick(@NonNull LatLng latLng) {
mMap.clear();
MarkerOptions markerOptions = new MarkerOptions().position(latLng);
mMap.addMarker(markerOptions);
    }
    


كيفية تحديد الموقع على الخريطة مع تحديد تفاصيل الموقع بنقرة مطوله


قم بعمل mMap.setOnMapLongClickListener(this); مثل السابق ولكن هنا OnMapLon يعني ضغطة مطوله ( نحن نشرح لكم هذة لكي تفهم الفكرة فقط يمكنك عمل بمجرد الضغط يضع نقطة مع تفاصيل او نقطة مطوله الخيار بين يديك نحن فقط نشرح كل الطرق ) , قم بعمل method مثل السابق ولكن الكود هنا سوف يختلف قليلا لاننا سوف نتعامل مع geocoder وقد سبق وان شرحناها من قبل .


في البداية سوف نقوم بعمل List<Address> اي مجموعة من العناوين وبعدها نختبر هل العنوان فارغ ام لا اذا كان نعم سوف يطلب رسالة لا يوجد معلومات ويقف اذا كان هناك موقع سوف يقوم بعمل Address وبعدها String لكي نخزن الاسم الذي سوف يخرج لنا في String وتخزن قيمته داخل streename وبعدها logi لنطبع النتائج لنا كمطور اندرويد , بعدها addMarker كما تعلمنا .


لو تلاحظ سوف تجد اننا قمنا بتعريف MarkerOptions داخل addMarker بدلا من تعريفها بالطريقة العاديه وناخذ object منها وبعد ذلك ناخذ الاوبجكت الخاص به ونضعه بداخل addMarker , بعد ذلك title او العنوان سوف يكون العنوان الموجود في streename لذلك سوف نضعها هنا وهذا كل مافي الامر قم الان بعمل run وجرب النتيجة بنفسك .



الكود السابق .خاص ببرنامج اندرويد ستوديو


@Override
public void onMapLongClick(@NonNull LatLng latLng) {
try {
List<Address> addresseslist = geocoder.getFromLocation(latLng.latitude, latLng.latitude, 1);
if (addresseslist.isEmpty()) {
Toast.makeText(this, "No information", Toast.LENGTH_SHORT).show();
return;
}
Address address = addresseslist.get(0);
String streename = address.getAddressLine(0);
Log.i(TAG, "onMapLongClick: " + streename);
mMap.addMarker(new MarkerOptions().position(latLng).title(streename));

} catch (IOException e) {
e.printStackTrace();
}
}



كيفية اضافة زر لتتبع موقعك ( كود التوجة لموقعك في برنامج اندرويد ستوديو )



قم باضافة هذا السطر الجميل الخاص بعملية setMyLocationEnabled وسوف تلاحظ وجود ايرور والسبب انه يخبرك انه يريد معرفة checkSelfPermission لذلك قم بعملها ليتمكن تطبيقك من تحديد موقع المستخدم بسهوله عن طريق ضغطة زر كل ما عليك نسخ الاكواد التالية واضافتها اسفل onMapReady .



الكود الموجود بالصورة


if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
mMap.setMyLocationEnabled(true);


صورة كامله للشكل النهائي 




الى هنا يكون انتهى شرح اليوم اتمنى ان ينال الشرح على رضاكم واستفدتم منه , واكون قد استطعت من توصيل المعلومه اليكم 💔 .

لمزيد من اكواد اندرويد ستوديو شاهد التالي .




رابط المشروع كامل على جيت هب - github


التنقل السريع