"خرائط Google" لمكتبة Android Utility

اختيار النظام الأساسي: Android iOS

هل تبحث عن ميزات متقدّمة لإضافتها إلى خرائطك؟ إنّ مكتبة برامج الخدمات الخاصة بحزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android هي مكتبة مفتوحة المصدر من الفئات المفيدة لمجموعة من التطبيقات. يتضمّن مستودع GitHub فئات الأدوات المساعدة وتطبيقًا تجريبيًا يوضّح استخدام كل فئة.

في هذا الفيديو، يناقش "كريس برودفوت" مكتبة الأدوات المساعدة، مع التركيز على فك ترميز الخطوط المتعدّدة والهندسة الكروية ورموز الفقاعات.

إعداد سريع

لتثبيت مكتبة برامج الخدمات الخاصة بحزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android، اتّبِع دليل الإعداد.

المرافق

خريطة تتضمّن طبقة GeoJSON

استيراد ملف GeoJSON إلى خريطتك

يمكنك تخزين الميزات بتنسيق GeoJSON واستخدام هذه الأداة لعرضها كطبقة فوق الخريطة. استخدِم addLayer() لإضافة بيانات GeoJSON إلى الخريطة. يمكنك أيضًا إضافة ميزات فردية من خلال استدعاء addFeature()، وتمرير كائن GeoJsonFeature.

لمعرفة التفاصيل، يُرجى الاطّلاع على المستندات حول أداة GeoJSON لنظام التشغيل Android في "خرائط Google".

خريطة تتضمّن طبقة KML

استيراد ملف KML إلى خريطتك

باستخدام هذه الأداة المساعدة، يمكنك تحويل عناصر KML إلى أشكال جغرافية وعرضها كطبقة فوق الخريطة. يمكنك استدعاء addLayerToMap() لإضافة الطبقة إلى الخريطة. يمكنك الوصول إلى السمات في عنصر KML من خلال استدعاء getProperties() على أيّ علامة موضع أو تراكب أرضي أو مستند أو مجلد.

لمعرفة التفاصيل، يُرجى الاطّلاع على المستندات حول أداة KML في "خرائط Google" لنظام التشغيل Android.

خريطة تتضمّن خريطة تمثيل لوني

إضافة خرائط التمثيل اللوني إلى خريطتك

تساعد خرائط التمثيل اللوني المشاهدين على فهم توزيع نقاط البيانات ومستوى جهدها النسبي على الخريطة. بدلاً من وضع علامة في كل موقع جغرافي، تستخدم الخرائط الحرارية اللون والشكل لتمثيل توزيع البيانات. أنشئ HeatmapTileProvider، ومرِّر إليه مجموعة من عناصر LatLng التي تمثّل نقاط الاهتمام على الخريطة. بعد ذلك، أنشئ TileOverlay جديدًا، ومرِّر إليه موفِّر مربّعات الخريطة الحرارية، وأضِف تراكب المربّعات إلى الخريطة.

لمعرفة التفاصيل، يُرجى الاطّلاع على المستندات حول أداة الخريطة الحرارية في "خرائط Google" لنظام التشغيل Android.

خريطة تتضمّن رموز فقاعات

تخصيص العلامات باستخدام رموز الفقاعات

أضِف IconGenerator لعرض مقتطفات من المعلومات على علاماتك. توفّر هذه الأداة طريقة لجعل رموز العلامات تبدو مثل نوافذ المعلومات، حيث يمكن أن تحتوي العلامة نفسها على نص ومحتوى آخر. وتتمثل الميزة في إمكانية إبقاء أكثر من علامة واحدة مفتوحة في الوقت نفسه، في حين لا يمكن فتح سوى نافذة معلومات واحدة في كل مرة. يمكنك أيضًا تصميم العلامات وتغيير اتجاه العلامة و/أو المحتوى وتغيير صورة الخلفية/صورة Nine-patch للعلامة.

خريطة مع علامة

تحريك العلامات

يمكنك تحريك علامة لتنتقل بسلاسة من موضعها الحالي إلى موقع جغرافي جديد. وتوفّر الفئة AnimationUtil هذه الإمكانية. للاطّلاع على مثال على كيفية استخدامها، يمكنك مراجعة AnimationUtilDemoActivity في مستودع GitHub الخاص بمكتبة الأدوات المساعدة.

خريطة تتضمّن علامات مجمّعة

إدارة مجموعات محدّدات المواقع

تساعدك ClusterManager في إدارة علامات متعددة بمستويات تكبير مختلفة. وهذا يعني أنّه يمكنك وضع عدد كبير من العلامات على خريطة بدون جعل الخريطة صعبة القراءة. عندما يعرض المستخدم الخريطة بمستوى تكبير عالٍ، تظهر العلامات الفردية على الخريطة. وعندما يصغّر المستخدم الخريطة إلى مستوى تكبير أقل، تتجمع العلامات معًا في مجموعات لتسهيل عرض الخريطة.

لمزيد من التفاصيل، يُرجى الاطّلاع على المستندات حول أداة تجميع محدّدات المواقع في "خرائط Google" لنظام التشغيل Android.

خريطة تتضمّن طبقات متعددة

إضافة طبقات متعددة إلى الخريطة نفسها

يمكنك عرض ميزات من GeoJSON وKML والمجموعات، بالإضافة إلى العلامات والخطوط المتعدّدة والمضلّعات الخاصة بك، كل ذلك على الخريطة نفسها. يمكنك أيضًا جعل هذه الطبقات تفاعلية من خلال إضافة متتبِّع النقرات إلى كل طبقة. لإجراء ذلك، عليك إنشاء مثيل للفئات MarkerManager وGroundOverlayManager وPolygonManager وPolylineManager وتمريرها إلى الدوال الإنشائية لكل من GeoJsonLayer وKmlLayer وClusterManager عند إعدادها. يمكنك بعد ذلك استخدام فئات Manager هذه مباشرةً لإضافة علاماتك وخطوطك المتعدّدة ومضلّعاتك إلى الخريطة.

لمعرفة التفاصيل، يُرجى الاطّلاع على المستندات حول الإصدار التجريبي من ميزة "الطبقات المتعددة" في "خرائط Google" لأجهزة Android.

خريطة تتضمّن خطوطًا متعدّدة مشفّرة

ترميز الخطوط المتعدّدة وفك ترميزها

تحوّل الفئة PolyUtil الخطوط المتعدّدة والمضلّعات المرمّزة إلى إحداثيات خطوط العرض/الطول، وتحوّل الإحداثيات إلى خطوط متعدّدة ومضلّعات مرمّزة.

في "خرائط Google"، يتم تخزين إحداثيات خطوط العرض والطول التي تحدّد خطوطًا متعدّدة أو مضلّعًا كسلسلة مرمّزة. يمكنك الاطّلاع على الشرح المفصّل حول ترميز الخطوط المتعدّدة. قد تتلقّى هذه السلسلة المرمّزة في ردّ من واجهة برمجة تطبيقات Google، مثل Directions API (القديمة).

يمكنك استخدام PolyUtil في مكتبة برامج الخدمات الخاصة بحزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android لترميز سلسلة من إحداثيات خطوط العرض/الطول (LatLngs) إلى سلسلة مسار مرمّزة، وفك ترميز سلسلة مسار مرمّزة إلى سلسلة من LatLngs. سيضمن ذلك إمكانية التشغيل التفاعلي مع خدمات الويب في Google Maps API.

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

حساب المسافات والمساحات والعناوين باستخدام الهندسة الكروية

باستخدام أدوات الهندسة الكروية في SphericalUtil، يمكنك احتساب المسافات والمساحات والاتجاهات استنادًا إلى خطوط العرض والطول. في ما يلي بعض الطرق المتاحة في الأداة المساعدة:

  • computeDistanceBetween(): تعرض المسافة بين إحداثيات خطوط العرض/الطول بالمتر.
  • ‫computeHeading(): تعرض هذه الدالة الاتجاه بالدرجات بين إحداثيات خطوط العرض/الطول.
  • ‫computeArea(): تعرض المساحة بالمتر المربع لمسار مغلق على الأرض.
  • ‫interpolate(): تعرض إحداثيات خط العرض/خط الطول لنقطة تقع على جزء معيّن من المسافة بين نقطتين محدّدتين. ويمكنك استخدام هذه الميزة لتحريك علامة بين نقطتين، على سبيل المثال.

يمكنك الرجوع إلى المستندات المرجعية للاطّلاع على قائمة كاملة بالطرق المتاحة في الأداة المساعدة.

التحقّق مما إذا كان الموقع الجغرافي متوافقًا مع ميزة "التجوّل الافتراضي"

التحقّق مما إذا كان الموقع الجغرافي متوافقًا مع ميزة "التجوّل الافتراضي"

توفّر الفئة StreetViewUtil وظيفة للتحقّق مما إذا كان الموقع الجغرافي متاحًا في ميزة "التجوّل الافتراضي". يمكنك تجنُّب الأخطاء عند إضافة بانوراما في "التجوّل الافتراضي" إلى تطبيق Android من خلال استدعاء أداة البيانات الوصفية هذه وإضافة بانوراما في "التجوّل الافتراضي" فقط إذا كانت الاستجابة OK.

لمعرفة التفاصيل، يُرجى الاطّلاع على المستندات حول أداة البيانات الوصفية في "التجوّل الافتراضي" على GitHub.