عکس های مکان

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.
پلتفرم را انتخاب کنید: سرویس وب جاوا اسکریپت اندروید iOS

می‌توانید از Places SDK برای Android برای درخواست عکس مکان برای نمایش در برنامه خود استفاده کنید. عکس‌های ارائه‌شده توسط سرویس عکس‌ها از منابع مختلفی از جمله صاحبان مشاغل و عکس‌های ارائه‌شده توسط کاربر می‌آیند. برای بازیابی یک تصویر برای یک مکان، باید مراحل زیر را انجام دهید:

  1. واکشی یک شیء Place (از fetchPlace() یا findCurrentPlace() استفاده کنید). حتما فیلد PHOTO_METADATAS را در درخواست خود لحاظ کنید.
  2. در OnSuccessListener برای FetchPlaceRequest خود، یک FetchPhotoRequest اضافه کنید که به صورت اختیاری حداکثر ارتفاع و عرض (به پیکسل) را مشخص کنید. عکس ها می توانند حداکثر عرض یا ارتفاع 1600 پیکسل داشته باشند.
  3. یک OnSuccessListener اضافه کنید و بیت مپ را از FetchPhotoResponse کنید.

عکس مکان بگیرید

مثال زیر گرفتن عکس مکان را نشان می دهد.

جاوا


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify fields. Requests for photos must always have the PHOTO_METADATAS field.
final List<Place.Field> fields = Collections.singletonList(Place.Field.PHOTO_METADATAS);

// Get a Place object (this example uses fetchPlace(), but you can also use findCurrentPlace())
final FetchPlaceRequest placeRequest = FetchPlaceRequest.newInstance(placeId, fields);

placesClient.fetchPlace(placeRequest).addOnSuccessListener((response) -> {
    final Place place = response.getPlace();

    // Get the photo metadata.
    final List<PhotoMetadata> metadata = place.getPhotoMetadatas();
    if (metadata == null || metadata.isEmpty()) {
        Log.w(TAG, "No photo metadata.");
        return;
    }
    final PhotoMetadata photoMetadata = metadata.get(0);

    // Get the attribution text.
    final String attributions = photoMetadata.getAttributions();

    // Create a FetchPhotoRequest.
    final FetchPhotoRequest photoRequest = FetchPhotoRequest.builder(photoMetadata)
        .setMaxWidth(500) // Optional.
        .setMaxHeight(300) // Optional.
        .build();
    placesClient.fetchPhoto(photoRequest).addOnSuccessListener((fetchPhotoResponse) -> {
        Bitmap bitmap = fetchPhotoResponse.getBitmap();
        imageView.setImageBitmap(bitmap);
    }).addOnFailureListener((exception) -> {
        if (exception instanceof ApiException) {
            final ApiException apiException = (ApiException) exception;
            Log.e(TAG, "Place not found: " + exception.getMessage());
            final int statusCode = apiException.getStatusCode();
            // TODO: Handle error with given status code.
        }
    });
});

      

کاتلین


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify fields. Requests for photos must always have the PHOTO_METADATAS field.
val fields = listOf(Place.Field.PHOTO_METADATAS)

// Get a Place object (this example uses fetchPlace(), but you can also use findCurrentPlace())
val placeRequest = FetchPlaceRequest.newInstance(placeId, fields)

placesClient.fetchPlace(placeRequest)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place

        // Get the photo metadata.
        val metada = place.photoMetadatas
        if (metada == null || metada.isEmpty()) {
            Log.w(TAG, "No photo metadata.")
            return@addOnSuccessListener
        }
        val photoMetadata = metada.first()

        // Get the attribution text.
        val attributions = photoMetadata?.attributions

        // Create a FetchPhotoRequest.
        val photoRequest = FetchPhotoRequest.builder(photoMetadata)
            .setMaxWidth(500) // Optional.
            .setMaxHeight(300) // Optional.
            .build()
        placesClient.fetchPhoto(photoRequest)
            .addOnSuccessListener { fetchPhotoResponse: FetchPhotoResponse ->
                val bitmap = fetchPhotoResponse.bitmap
                imageView.setImageBitmap(bitmap)
            }.addOnFailureListener { exception: Exception ->
                if (exception is ApiException) {
                    Log.e(TAG, "Place not found: " + exception.message)
                    val statusCode = exception.statusCode
                    TODO("Handle error with given status code.")
                }
            }
    }

      

اسناد

در بیشتر موارد، عکس‌های مکان را می‌توان بدون ذکر منبع استفاده کرد، یا به عنوان بخشی از تصویر، اسناد مورد نیاز را درج می‌کند. با این حال، اگر نمونه PhotoMetadata شامل یک انتساب باشد، باید هرجا که تصویر را نمایش می‌دهید، انتساب اضافی را در برنامه خود قرار دهید. برای اطلاعات بیشتر، به نمایش اسناد اشاره کنید.

استفاده و صورتحساب

برای تماس با fetchPhoto() یک Places Photo SKU هزینه می شود. برای جزئیات به صفحه استفاده و صورتحساب مراجعه کنید.