ضبط نمط الخريطة (Android SDK)

تعرض لك المقالة طريقتين لتعيين أنماط الخريطة باستخدام Azure Maps Android SDK. تحتوي خرائط Azure على ستة أنماط خرائط مختلفة للاختيار من بينها. لمزيد من المعلومات حول أنماط الخريطة المدعومة، راجع أنماط الخريطة المدعومة في خرائط Azure.

إشعار

خرائط Azure إيقاف Android SDK

تم الآن إهمال خرائط Azure Native SDK لنظام التشغيل Android وسيتم إيقافه في 3/31/25. لتجنب انقطاع الخدمة، قم بالترحيل إلى خرائط Azure Web SDK بحلول 3/31/25. لمزيد من المعلومات، راجع دليل ترحيل خرائط Azure Android SDK.

المتطلبات الأساسية

تأكد من إكمال الخطوات في التشغيل السريع: إنشاء تطبيق Android.

تعيين شكل الخريطة في التخطيط

يمكنك تعيين شكل خريطة في ملف التخطيط لفئة النشاط عند إضافة عنصر تحكم الخريطة. تحدد التعليمات البرمجية التالية موقع الوسط ومستوى التكبير/التصغير ونمط الخريطة.

<com.azure.android.maps.control.MapControl
    android:id="@+id/mapcontrol"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:azure_maps_centerLat="47.602806"
    app:azure_maps_centerLng="-122.329330"
    app:azure_maps_zoom="12"
    app:azure_maps_style="grayscale_dark"
    />

تُظهر لقطة الشاشة التالية التعليمة البرمجية أعلاه التي تعرض خريطة طريق بنمط غامق بتدرج الرمادي.

خريطة بنمط خريطة طريق داكنة بتدرج الرمادي

تعيين شكل الخريطة في التعليمات البرمجية

يمكن تعيين نمط الخريطة برمجياً في التعليمة البرمجية باستخدام طريقة setStyle للخريطة. تعيّن التعليمة البرمجية التالية موقع المركز ومستوى التكبير / التصغير باستخدام طريقة الخرائط setCamera ونمط الخريطة إلى SATELLITE_ROAD_LABELS.

mapControl.onReady(map -> {

    //Set the camera of the map.
    map.setCamera(center(Point.fromLngLat(-122.33, 47.64)), zoom(14));

    //Set the style of the map.
    map.setStyle(style(MapStyle.SATELLITE_ROAD_LABELS));
});
mapControl!!.onReady { map: AzureMap ->
    //Set the camera of the map.
    map.setCamera(center(Point.fromLngLat(-122.33, 47.64)), zoom(14))

    //Set the style of the map.
    map.setStyle(style(MapStyle.SATELLITE_ROAD_LABELS))
}

تظهر لقطة الشاشة التالية الرمز أعلاه الذي يعرض خريطة مع نمط تسميات الطريق عبر الأقمار الصناعية.

خريطة باستخدام نمط تسميات طريق الأقمار الصناعية

ضبط كاميرا الخريطة

تتحكم كاميرا الخريطة في أي جزء من العالم يتم عرضه في منفذ عرض الخريطة. يمكن أن تكون الكاميرا في تخطيط برنامجنا في التعليمات البرمجية. عند تعيين في التعليمات البرمجية، توجد طريقتان رئيسيتان لتعيين موضع الخريطة; باستخدام الوسط والتكبير/ التصغير، أو التمرير في مربع حدود. توضح التعليمات البرمجية التالية كيفية تعيين كافة خيارات الكاميرا الاختيارية عند استخدام center و zoom.

//Set the camera of the map using center and zoom.
map.setCamera(
    center(Point.fromLngLat(-122.33, 47.64)), 

    //The zoom level. Typically a value between 0 and 22.
    zoom(14),

    //The amount of tilt in degrees the map where 0 is looking straight down.
    pitch(45),

    //Direction the top of the map is pointing in degrees. 0 = North, 90 = East, 180 = South, 270 = West
    bearing(90),

    //The minimum zoom level the map will zoom-out to when animating from one location to another on the map.
    minZoom(10),

    //The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
    maxZoom(14)
);
//Set the camera of the map using center and zoom.
map.setCamera(
    center(Point.fromLngLat(-122.33, 47.64)), 

    //The zoom level. Typically a value between 0 and 22.
    zoom(14),

    //The amount of tilt in degrees the map where 0 is looking straight down.
    pitch(45),

    //Direction the top of the map is pointing in degrees. 0 = North, 90 = East, 180 = South, 270 = West
    bearing(90),

    //The minimum zoom level the map will zoom-out to when animating from one location to another on the map.
    minZoom(10),

    //The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
    maxZoom(14)
)

غالبا ما يكون من المستحسن تركيز الخريطة على مجموعة من البيانات. يمكن حساب مربع حدود من المعالم باستخدام MapMath.fromData الطريقة ويمكن تمريرها إلى bounds خيار كاميرا الخريطة. عند تعيين طريقة عرض خريطة استنادًا إلى مربع حدود، غالبًا ما يكون من المفيد تحديد قيمة padding لحساب حجم بكسل النقاط التي يتم عرضها كفقاعات أو رموز. توضح التعليمة البرمجية التالية كيفية ضبط جميع خيارات الكاميرا الاختيارية عند استخدام مربع محيط لضبط موضع الكاميرا.

//Set the camera of the map using a bounding box.
map.setCamera(
    //The area to focus the map on.
    bounds(BoundingBox.fromLngLats(
        //West
        -122.4594,

        //South
        47.4333,

        //East
        -122.21866,

        //North
        47.75758
    )),

    //Amount of pixel buffer around the bounding box to provide extra space around the bounding box.
    padding(20),

    //The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
    maxZoom(14)
);
//Set the camera of the map using a bounding box.
map.setCamera(
    //The area to focus the map on.
    bounds(BoundingBox.fromLngLats(
        //West
        -122.4594,

        //South
        47.4333,

        //East
        -122.21866,

        //North
        47.75758
    )),

    //Amount of pixel buffer around the bounding box to provide extra space around the bounding box.
    padding(20),

    //The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
    maxZoom(14)
)

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

تحريك عرض الخريطة

عند إعداد خيارات الكاميرا للخريطة، يمكن أيضًا استخدام خيارات الحركة لإنشاء انتقال بين طريقة عرض الخريطة الحالية والمقبل. تحدد هذه الخيارات نوع الرسوم المتحركة والمدة التي يجب أن تستغرقها لتحريك الكاميرا.

خيار ‏‏الوصف
animationDuration(Integer durationMs) تحديد المدة التي تتنقل فيها الكاميرا بين طرق العرض بالمللي ثانية (مللي ثانية).
animationType(AnimationType animationType) يحدد نوع الحركة المراد تنفيذها.

- JUMP - تغيير مباشر.
- EASE - تغيير تدريجي لإعدادات الكاميرا.
- FLY - تغيير تدريجي لإعدادات الكاميرا التي تخلق قوسا تشبه الرحلة.

توضح هذه التعليمة البرمجية كيفية تحريك طريقة عرض الخريطة باستخدام حركة FLY على مدى ثلاث ثوان:

map.setCamera(
    center(Point.fromLngLat(-122.33, 47.6)),
    zoom(12),
    animationType(AnimationType.FLY), 
    animationDuration(3000)
);
map.setCamera(
    center(Point.fromLngLat(-122.33, 47.6)),
    zoom(12.0),
    AnimationOptions.animationType(AnimationType.FLY),
    AnimationOptions.animationDuration(3000)
)

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

رسم خريطة متحركة للكاميرا من نيويورك إلى سياتل

الخطوات التالية

راجع المقالات التالية للحصول على المزيد من نماذج التعليمات البرمجية لإضافتها إلى الخرائط الخاصة بك: