الغابة gif

تستفيد Flightmap SDK من قوة MBGL sdk مفتوحة المصدر لتقديم مجموعة بيانات الخرائط المخصصة لدينا. يدعم SDK الخاص بنا الإصدار الحالي: v1.0.3.6 والمميزات التالية:

  • أنماط الخريطة

  • التلاعب بالكاميرا

  • لفتات

قم بتثبيت Flightmap SDK

قبل البدء في تطوير تطبيقك باستخدام Flightmap SDK ، ستحتاج إلى إضافة SDK كعنصر تبعية. يمكنك العثور على التبعية التالية الواردة أدناه في مستودع MavenCentral. إذا كان التطبيق الخاص بك قريبًا أو يتجاوز حد عدد الطرق البالغ 65 ألفًا ، فيمكنك التخفيف من هذه المشكلة عن طريق تمكين ProGuard داخل التطبيق الخاص بك. يتم تضمين توجيهات ProGuard في تبعيات Android للحفاظ على الفئات المطلوبة. يمكنك أيضًا تقليص حجم ملف APK من خلال الاستفادة من تقسيم APK.

أضف التبعية
  • ابدأ Android Studio

  • يجب أن يكون Android Project في Android X

  • استوديو Android 3. +

  • افتح ملف build.gradle للتطبيق الخاص بك.

  • تأكد من أن minSdkVersion لمشروعك في API 14 أو أعلى.

  • ضمن التبعيات ، أضف سطر تبعية تنفيذ جديد لأحدث خريطة طيران-android-sdk.

  • ابحث عن الملف في شريط الأدوات ، ثم انقر فوق Sync Project with Gradle Files.

ملاحظة:أضف التبعية التالية إلى مشروع ملف build.gradle / app / build.gradle لوحدة التطبيق:

التبعيات {
تنفيذ "com.flightmap.flightmapsdk: flightmap: 1.0.3.6"
}

ملاحظة:أضف Maven في ملف project build.gradle في كل مستودع المشروع

جميع المشاريع {
مستودعات {
متصفح الجوجل()
jcenter ()

مافن {url 'https://dl.bintray.com/flightmap/com.flightmap'}

}
}

بالإضافة إلى ذلك ، سيؤدي تشغيل gradle app_module_name_here: التبعيات في سطر الأوامر إلى طباعة قائمة من التبعيات. ./gradlew app: تعمل التبعيات إذا كان لديك غلاف Gradle. إنها مفيدة لاستكشاف أخطاء تكوينات Gradle الذكية وإصلاحها عند تضمين مكتبات مختلفة في مشروع واحد. يمكنك رؤية التبعيات التي تجلبها مكتبات معينة وأين قد تحدث التعارضات.

احصل على رمز وصول

انسخ الرمز المميز العام الافتراضي الخاص بك إلى الحافظة الخاصة بك. بعد إضافة Maps SDK كعنصر تبعية داخل مشروع Android الخاص بك ، افتح ملف R.strings.xml ، وأنشئ مورد سلسلة جديد ، والصق رمز الوصول.

FLIGHTMAP_ACCESS_TOKEN

ثم لتمرير هذا إلى Flightmap SDK ، ستحتاج إلى وضع رمز الوصول داخل طريقة onCreate () للتطبيق الخاص بك.

توسع MyApplication للفئة العامة التطبيق {

Override public void onCreate () {
super.onCreate ()

// رمز الوصول إلى Flightmap
Mapbox.getInstance (getApplicationContext () ، getString (R.string.flightmap_access_token))
}
}

يوفر Flightmap SDK أيضًا طريقة setToken () في حالة رغبتك في تبديل رمز الوصول إلى Flightmap في وقت التشغيل.

Mapbox.setAccessToken (FLIGHTMAP_ACCESS_TOKEN) ،

أذونات الإعداد

بدءًا من الإصدار 5.0 من Maps SDK ، يمكنك استخدام ميزة دمج Manifest لتقليل الحاجة إلى تضمين أي أشياء مطلوبة لـ Maps SDK داخل ملف بيان التطبيق الخاص بك. ستحتاج إلى إضافة إذن الموقع الدقيق أو التقريبي إذا كنت تخطط لعرض موقع المستخدم على الخريطة أو الحصول على معلومات موقع المستخدم. يجب أيضًا التحقق من إذن موقع المستخدم أثناء وقت التشغيل باستخدام ResourceManager.

أضف خريطة

افتح ملف Java الخاص بالنشاط الذي تريد تضمين الخريطة فيه وأضف الكود أدناه إلى الملف.

MapView mapView الخاصة ؛
Override protected void onCreate (Bundle saveInstanceState) {
super.onCreate (saveInstanceState)

Mapbox.getInstance (هذا ، getString (R.string.flightmap_access_token *)

setContentView (R.layout.activity_main)
mapView = (MapView) findViewById (R.id.mapView)
mapView.onCreate (saveInstanceState (
mapView.getMapAsync (جديد OnMapReadyCallback () {
Override public void onMapReady (NonNull MapboxMap mapboxMap) {
mapboxMap.setStyle (Style.DARK، new Style.OnStyleLoaded () {
@تجاوز
الفراغ العام [البريد الإلكتروني محمي](نمط NonNull) {
// تم إعداد الخريطة وتحميل النمط. يمكنك الآن إضافة بيانات أو إجراء تعديلات أخرى على الخريطة
}
})
}
})
}

لتعيين النمط مع URL.
  • المظهر الداكن:https://maps.flightmap.io/styles/style-dark.json

  • LightTheme:https://maps.flightmap.io/styles/style-bright.json

mapboxMap.setStyle (new Style.Builder (). fromUri ("https://maps.flightmap.io/styles/style-dark.json") ،
Style.OnStyleLoaded جديد () {
Override public void onStyleLoaded (NonNull Style style) {
}
})

افتح ملف تخطيط XML للنشاط وأضف mapView ضمن التخطيط الخاص بك.

<com.mapbox.mapboxsdk.maps.MapView
android: id = "@ + id / mapView"
android: layout_width = "match_parent"
android: layout_height = "match_parent"
/>

طرق دورة الحياة

يحتوي MapView على طرق دورة الحياة الخاصة به لإدارة دورة حياة OpenGL لنظام Android ، والتي يجب استدعاؤها مباشرة من النشاط المحتوي. لكي يقوم تطبيقك باستدعاء أساليب دورة حياة MapView بشكل صحيح ، يجب عليك تجاوز أساليب دورة الحياة التالية في النشاط الذي يحتوي على MapView واستدعاء طريقة MapView ذات الصلة. على سبيل المثال ، يجب أن تبدو طريقة onStart () الخاصة بك كما يلي:

@تجاوز
باطل محمي onStart () {
super.onStart ()
mapView.onStart ()
}

مثل تجاوز onStart () أعلاه ، يجب أيضًا تجاوز طرق دورة الحياة التالية وتضمين طريقة MapView المطابقة:

@تجاوز
محمية باطلة onResume () {
super.onResume ()
mapView.onResume ()
}

@تجاوز
محمية باطلة onPause () {
super.onPause ()
mapView.onPause ()
}

@تجاوز
باطل محمي onStop () {
super.onStop ()
mapView.onStop ()
}

@تجاوز
محمية باطلة onSaveInstanceState (حزمة outState) {
super.onSaveInstanceState (خارج الدولة) mapView.onSaveInstanceState (outState)}

@تجاوز
باطل عام onLowMemory () {
super.onLowMemory ()
mapView.onLowMemory ()
}

@تجاوز
باطل محمي onDestroy () {
super.onDestroy ()
mapView.onDestroy ()
}

إذا كنت تستخدم جزءًا ، فاتصل بـ mapview.onDestroy () داخل طريقة onDestroyView () للجزء بدلاً من داخل onDestroy ():

@تجاوز
العامة باطل onDestroyView () {
super.onDestroyView ()
mapView؟. onDestroy ()
}

أضف علامة

تعتبر العلامات مفيدة عند تحديد نقطة واحدة على الخريطة. تأتي SDK مع أيقونة علامة افتراضية يمكن تهيئتها لتناسب احتياجاتك الخاصة. تتعرض واجهات برمجة التطبيقات لتغيير هذا الرمز اختياريًا إلى أي صورة نقطية تريدها. لإنشاء علامة للخريطة ، أنت مطالب فقط بتوفير موقع LatLng الذي يحدد مكان وضع العلامة على الخريطة. اتصل بـ mapboxMap.addMarker () لإضافة العلامة إلى الخريطة.

mapboxMap.addMarker (خيارات MarkerOptions جديدة ()
.position (خط LatLng الجديد (48.85819 ، 2.29458))
.title ("برج إيفل"))

أضف قائمة بالعلامات باستخدام mapboxMap.addMarkers () إذا كان لديك العديد من العلامات أو تقوم بتحميلهم من ملف GeoJSON.

إزالة العلامات

يأتي Flightmsp Android SDK بطريقتين لإزالة العلامات. إذا كنت ترغب في إزالة علامة معينة ، فاستخدم mapboxMap.removeMarker () أثناء تمرير كائن العلامة المراد إزالته. إذا كنت ترغب في إزالة جميع العلامات ، فاتصل بطريقة mapboxMap.clear (). لاحظ أن هذا سيؤدي أيضًا إلى إزالة أي خطوط متعددة ومضلعات أضفتها إلى خريطتك.

تخصيص رمز العلامة

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

IconFactory iconFactory = IconFactory.getInstance (MainActivity.this)
رمز الرمز = iconFactory.fromResource (R.drawable.blue_marker)
mapboxMap.addMarker (خيارات MarkerOptions جديدة ()
.position (خط LatLng الجديد (48.85819 ، 2.29458))
.icon (رمز))

أضف متعدد الخطوط

تشبه إضافة خط أو مضلع إلى خريطتك إضافة علامة. نظرًا لطبيعة هذه الكائنات ، يتم الكشف عن واجهات برمجة تطبيقات مختلفة ، مثل لون المضلع أو عرض الخط. بدلاً من اتخاذ موقف واحد ، قم بتجميع كل كائنات LatLng داخل قائمة ثم قم بتمريرها باستخدام طريقة addAll ().

mapboxMap.addPolyline (خيارات Polyline الجديدة ()
.addAll (نقاط)
.color (Color.parseColor ("# 3bb2d0"))
.width (2))

دعونا نجد طريقة معا

تواصل معنا للتعرف على خطط الأسعار الخاصة بنا

تواصل معنا
Jungleworks