خدمة الحد الأقصى من صور Zoom

  1. الحد الأقصى لعدد الصور في ميزة التكبير/التصغير
  2. طلبات MaxZoom
  3. استجابات MaxZoom

نظرة عامة

توفر واجهة برمجة تطبيقات خرائط Google مربعات الخرائط في مختلف مستويات التكبير أو التصغير لصور نوع الخريطة. معظم خارطة الطريق الصور متاحة من مستويات التكبير/التصغير 0 إلى 18، مثال. تختلف صور القمر الصناعي على نطاق أوسع حيث الصور، ولكن يتم تصويرها مباشرةً.

نظرًا لأن صور القمر الصناعي لا تتوفر دائمًا على مستويات تكبير/تصغير عالية في المواقع النائية — تكون فيها كثافة سكانية منخفضة أو مناطق محيطة مفتوحة - قد ترغب في معرفة أعلى مستوى تكبير للصور في موقع معين مسبقًا. يوفّر الكائن MaxZoomService السمة بسيطة لاكتشاف أقصى مستوى للتكبير/التصغير الموقع الذي تتوفر له صور القمر الصناعي في خرائط Google.

طلبات MaxZoom

يُعد الوصول إلى MaxZoomService غير متزامن، نظرًا لأن تحتاج واجهة برمجة التطبيقات لخرائط Google إلى إجراء اتصال بخادم خارجي. بالنسبة لهذا السبب، تحتاج إلى تمرير طريقة استدعاء لتنفيذ فور اكتمال الطلب. يجب معالجة طريقة معاودة الاتصال هذه النتيجة.

لإرسال طلب إلى MaxZoomService، الاتصال بـ getMaxZoomAtLatLng()، وتمرير LatLng للموقع الجغرافي ودالة استدعاء التنفيذ عند اكتمال الطلب.

استجابات MaxZoom

عندما ينفذ getMaxZoomAtLatLng() معاودة الاتصال ستعمل على تمرير معاملين:

  • status يحتوي على MaxZoomStatus بالطلب.
  • يحتوي zoom على مستوى التكبير/التصغير. إذا كان لسبب ما تعطل الخدمة، فلن تكون هذه القيمة موجودة.

قد يعرض الرمز status إحدى القيم التالية:

  • تشير القيمة OK إلى أنّ الخدمة عثرت على الحد الأقصى للتكبير أو التصغير المستوى لصور القمر الصناعي.
  • يشير ERROR إلى أنّ طلب MaxZoom تعذرت معالجة طلب البحث.

يوضح المثال التالي خريطة لمدينة طوكيو الحضرية. يشير النقر على أي مكان على الخريطة إلى الحد الأقصى لمستوى التكبير/التصغير في هذا الموقع. (تختلف مستويات التكبير/التصغير حول طوكيو بشكل عام بين مستويي التكبير/التصغير 18 و21).

TypeScript

let map: google.maps.Map;
let maxZoomService: google.maps.MaxZoomService;
let infoWindow: google.maps.InfoWindow;

function initMap(): void {
  map = new google.maps.Map(document.getElementById("map") as HTMLElement, {
    zoom: 11,
    center: { lat: 35.6894, lng: 139.692 },
    mapTypeId: "hybrid",
  });

  infoWindow = new google.maps.InfoWindow();

  maxZoomService = new google.maps.MaxZoomService();

  map.addListener("click", showMaxZoom);
}

function showMaxZoom(e: google.maps.MapMouseEvent) {
  maxZoomService.getMaxZoomAtLatLng(
    e.latLng as google.maps.LatLng,
    (result: google.maps.MaxZoomResult) => {
      if (result.status !== "OK") {
        infoWindow.setContent("Error in MaxZoomService");
      } else {
        infoWindow.setContent(
          "The maximum zoom at this location is: " + result.zoom
        );
      }

      infoWindow.setPosition(e.latLng);
      infoWindow.open(map);
    }
  );
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

let map;
let maxZoomService;
let infoWindow;

function initMap() {
  map = new google.maps.Map(document.getElementById("map"), {
    zoom: 11,
    center: { lat: 35.6894, lng: 139.692 },
    mapTypeId: "hybrid",
  });
  infoWindow = new google.maps.InfoWindow();
  maxZoomService = new google.maps.MaxZoomService();
  map.addListener("click", showMaxZoom);
}

function showMaxZoom(e) {
  maxZoomService.getMaxZoomAtLatLng(e.latLng, (result) => {
    if (result.status !== "OK") {
      infoWindow.setContent("Error in MaxZoomService");
    } else {
      infoWindow.setContent(
        "The maximum zoom at this location is: " + result.zoom,
      );
    }

    infoWindow.setPosition(e.latLng);
    infoWindow.open(map);
  });
}

window.initMap = initMap;
الاطّلاع على مثال

تجربة "عيّنة"