التحكّم في سلوك الاصطدام والارتفاع ومستوى الرؤية

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

توضّح لك هذه الصفحة كيفية التحكّم في الجوانب التالية من "العلامات المتقدّمة":

  • ضبط سلوك التعارض لعلامة
  • تحديد ارتفاع العلامة
  • التحكّم في إمكانية ظهور العلامات حسب مستوى تكبير/تصغير الخريطة

ضبط سلوك التعارض لعلامة

يتحكّم سلوك التصادم في طريقة عرض العلامة إذا تصادمت (تداخلت) مع علامة أخرى. لا يتوفّر سلوك التعارض إلا على الخرائط المتجهة.

لضبط سلوك التصادم، اضبط AdvancedMarkerElement.collisionBehavior على إحدى القيم التالية:

  • REQUIRED: (تلقائي) يتم عرض العلامة دائمًا بغض النظر عن التعارض.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY عرض العلامة فقط إذا لم تتداخل مع علامات أخرى إذا تداخلت علامتان من هذا النوع، سيتم عرض العلامة التي لديها قيمة zIndex أعلى. إذا كانت السمة zIndex نفسها، سيتم عرض السمة التي تتضمّن موضع الشاشة العمودي الأقل.
  • REQUIRED_AND_HIDES_OPTIONAL عرض العلامة دائمًا بغض النظر عن التداخل، وإخفاء أي علامات أو تصنيفات OPTIONAL_AND_HIDES_LOWER_PRIORITY تتداخل مع العلامة

يوضّح المثال التالي سلوك تعارض الإعدادات لعلامة:

TypeScript

const advancedMarker = new AdvancedMarkerElement({
    position: new google.maps.LatLng({ lat, lng }),
    collisionBehavior: collisionBehavior,
});
mapElement.appendChild(advancedMarker);

JavaScript

const advancedMarker = new AdvancedMarkerElement({
    position: new google.maps.LatLng({ lat, lng }),
    collisionBehavior: collisionBehavior,
});
mapElement.appendChild(advancedMarker);

تحديد ارتفاع العلامة

في الخرائط المتجهة، يمكنك ضبط الارتفاع الذي تظهر عنده العلامة. ويفيد ذلك في عرض العلامات بشكل صحيح بالنسبة إلى محتوى الخريطة الثلاثية الأبعاد. لضبط الارتفاع الخاص بعلامة، حدِّد LatLngAltitude كقيمة للخيار MarkerView.position:

TypeScript

const pin = new PinElement({
    background: '#4b2e83',
    borderColor: '#b7a57a',
    glyphColor: '#b7a57a',
    scale: 2.0,
});

const marker = new AdvancedMarkerElement({
    // Set altitude to 20 meters above the ground.
    position: {
        lat: 47.65170843460547,
        lng: -122.30754,
        altitude: 20,
    } as google.maps.LatLngAltitudeLiteral,
});
marker.append(pin);

mapElement.append(marker);

JavaScript

const pin = new PinElement({
    background: '#4b2e83',
    borderColor: '#b7a57a',
    glyphColor: '#b7a57a',
    scale: 2.0,
});
const marker = new AdvancedMarkerElement({
    // Set altitude to 20 meters above the ground.
    position: {
        lat: 47.65170843460547,
        lng: -122.30754,
        altitude: 20,
    },
});
marker.append(pin);
mapElement.append(marker);

التحكّم في إمكانية ظهور العلامات حسب مستوى تكبير/تصغير الخريطة

اطّلِع على تغيير مستوى ظهور العلامات (ابدأ بالتصغير):

للتحكّم في مستوى ظهور "علامة متقدّمة"، أنشئ zoom_changed عنصر معالجة، وأضِف دالة شرطية لضبط AdvancedMarkerElement.map على null إذا تجاوز مستوى التكبير/التصغير المستوى المحدّد، كما هو موضّح في المثال التالي:

TypeScript

mapElement.innerMap.addListener('zoom_changed', () => {
    let zoom = mapElement.innerMap.getZoom();
    for (let i = 0; i < markers.length; i++) {
        const { position, minZoom } = markerOptions[i];
        markers[i].position = zoom! > minZoom ? position : null;
    }
});

JavaScript

mapElement.innerMap.addListener('zoom_changed', () => {
    let zoom = mapElement.innerMap.getZoom();
    for (let i = 0; i < markers.length; i++) {
        const { position, minZoom } = markerOptions[i];
        markers[i].position = zoom > minZoom ? position : null;
    }
});

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

إتاحة النقر على العلامات وتسهيل الوصول إليها