Bagikan melalui


pustaka klien Azure Maps Render Package untuk Python - versi 1.0.0b2

Paket ini berisi Python SDK untuk Layanan Azure Maps untuk Render. Baca selengkapnya tentang Layanan Azure Maps di sini

Kode sumber | Dokumentasi | referensi APIDokumentasi produk

Pengelakan

Dukungan paket Azure SDK Python untuk Python 2.7 telah berakhir 01 Januari 2022. Untuk informasi lebih lanjut dan pertanyaan, silakan merujuk ke https://github.com/Azure/azure-sdk-for-python/issues/20691

Memulai

Prasyarat

Jika Anda menggunakan Azure CLI, ganti <resource-group-name> dan <account-name> pilihan Anda, dan pilih tingkat harga yang tepat berdasarkan kebutuhan Anda melalui <sku-name> parameter . Harap tinjau halaman ini untuk detail selengkapnya.

az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>

Instal paketnya

Instal SDK Azure Maps Service Render.

pip install azure-maps-render

Membuat dan Mengautentikasi MapsRenderClient

Untuk membuat objek klien untuk mengakses Azure Maps Render API, Anda memerlukan objek kredensial. klien Azure Maps Render juga mendukung dua cara untuk mengautentikasi.

1. Autentikasi dengan Kredensial Kunci Langganan

Anda dapat mengautentikasi dengan Kunci Langganan Azure Maps Anda. Setelah Kunci Langganan Azure Maps dibuat, atur nilai kunci sebagai variabel lingkungan: AZURE_SUBSCRIPTION_KEY. Kemudian teruskan AZURE_SUBSCRIPTION_KEY sebagai credential parameter ke dalam instans AzureKeyCredential.

from azure.core.credentials import AzureKeyCredential
from azure.maps.render import MapsRenderClient

credential = AzureKeyCredential(os.environ.get("AZURE_SUBSCRIPTION_KEY"))

render_client = MapsRenderClient(
    credential=credential,
)

2. Mengautentikasi dengan kredensial Azure Active Directory

Anda dapat mengautentikasi dengan kredensial token Azure Active Directory (AAD) menggunakan pustaka Azure Identity. Autentikasi dengan menggunakan AAD memerlukan beberapa penyiapan awal:

Setelah penyiapan, Anda dapat memilih jenis kredensialazure.identity mana yang akan digunakan. Sebagai contoh, DefaultAzureCredential dapat digunakan untuk mengautentikasi klien:

Selanjutnya, atur nilai ID klien, ID penyewa, dan rahasia klien aplikasi AAD sebagai variabel lingkungan: AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET

Anda juga perlu menentukan sumber daya Azure Maps yang ingin Anda gunakan dengan menentukan clientId di opsi klien. Id klien sumber daya Azure Maps dapat ditemukan di bagian Autentikasi di sumber daya Azure Maps. Silakan lihat dokumentasi tentang cara menemukannya.

from azure.maps.render import MapsRenderClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
render_client = MapsRenderClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

Konsep utama

Pustaka klien Azure Maps Render untuk Python memungkinkan Anda berinteraksi dengan setiap komponen melalui penggunaan objek klien khusus.

Sinkronkan Klien

MapsRenderClientadalah klien utama untuk pengembang yang menggunakan pustaka klien Azure Maps Render untuk Python. Setelah menginisialisasi MapsRenderClient kelas, Anda dapat menjelajahi metode pada objek klien ini untuk memahami berbagai fitur layanan Azure Maps Render yang dapat Anda akses.

Klien Asinkron

Pustaka ini mencakup API asinkron lengkap yang didukung pada Python 3.5+. Untuk menggunakannya, Anda harus menginstal transportasi asinkron terlebih dahulu, seperti aiohttp. Lihat dokumentasi azure-core untuk informasi selengkapnya.

Klien dan kredensial asinkron harus ditutup ketika tidak lagi diperlukan. Objek-objek ini adalah manajer konteks asinkron dan mendefinisikan metode asinkron close .

Contoh

Bagian berikut ini menyediakan beberapa cuplikan kode yang mencakup beberapa tugas Azure Maps Render yang paling umum, termasuk:

Dapatkan Atribusi Maps

Permintaan ini memungkinkan pengguna untuk meminta informasi atribusi hak cipta peta untuk bagian dari tileset.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_attribution(
    tileset_id=TilesetID.MICROSOFT_BASE,
    zoom=6,
    bounds=BoundingBox(
        south=42.982261,
        west=24.980233,
        north=56.526017,
        east=1.355233
    )
)

Dapatkan Petak Peta

Permintaan ini akan mengembalikan petak peta dalam format vektor atau raster biasanya untuk diintegrasikan ke dalam kontrol peta atau SDK. Beberapa contoh petak peta yang dapat diminta adalah petak peta jalan Azure Maps, petak peta Radar Cuaca real time. Secara default, Azure Maps menggunakan petak peta vektor untuk kontrol peta web (Web SDK) dan Android SDK.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_tile(
    tileset_id=TilesetID.MICROSOFT_BASE,
    z=6,
    x=9,
    y=22,
    tile_size="512"
)

Dapatkan Tileset Maps

Permintaan ini akan memberikan metadata untuk tileset.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)

Dapatkan Gambar Statis Peta

Permintaan ini akan menyediakan layanan gambar statis merender gambar persegi panjang yang ditentukan pengguna yang berisi bagian peta menggunakan tingkat pembesaran tampilan dari 0 hingga 20. Layanan gambar statis merender gambar persegi panjang yang ditentukan pengguna yang berisi bagian peta menggunakan tingkat pembesaran tampilan dari 0 hingga 20. Dan juga simpan hasilnya untuk diajukan sebagai png.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_static_image(img_format="png", center=(52.41064,4.84228))
# Save result to file as png
file = open('result.png', 'wb')
file.write(next(result))
file.close()

Permintaan ini akan melayani informasi hak cipta untuk layanan Render Tile.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_copyright_for_world()

Pemecahan Masalah

Umum

Klien Maps Render memunculkan pengecualian yang ditentukan di Azure Core.

Daftar ini dapat digunakan untuk referensi guna menangkap pengecualian yang dilemparkan. Untuk mendapatkan kode kesalahan tertentu dari pengecualian, gunakan error_code atribut , yaitu , exception.error_code.

Pembuatan Log

Pustaka ini menggunakan pustaka pengelogan standar untuk pengelogan. Informasi dasar tentang sesi HTTP (URL, header, dll.) dicatat di tingkat INFO.

Pengelogan tingkat DEBUG terperinci, termasuk isi permintaan/respons dan header yang tidak diredaksikan, dapat diaktifkan pada klien dengan logging_enable argumen :

import sys
import logging
from azure.maps.render import MapsRenderClient

# Create a logger for the 'azure.maps.render' SDK
logger = logging.getLogger('azure.maps.render')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

Tambahan

Masih mengalami masalah? Jika Anda menemukan bug atau memiliki saran, silakan ajukan masalah di bagian Masalah proyek.

Langkah berikutnya

Lebih banyak kode sampel

Mulai menggunakan sampel Maps Render kami (sampel Versi Asinkron).

Beberapa sampel Azure Maps Render Python SDK tersedia untuk Anda di repositori GitHub SDK. Sampel ini menyediakan kode contoh untuk skenario tambahan yang biasa ditemui saat bekerja dengan Maps Render

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-render --pre

python samples/sample_authentication.py
python sample/sample_get_copyright_caption.py
python sample/sample_get_copyright_for_tile.py
python sample/sample_get_copyright_for_world.py
python sample/sample_get_copyright_from_bounding_box.py
python sample/sample_get_map_attribution.py
python sample/sample_get_map_static_image.py
python sample/sample_get_map_tile.py
python sample/sample_get_map_tileset.py

Catatan: --pre bendera dapat ditambahkan secara opsional, yaitu menyertakan versi pra-rilis dan pengembangan untuk pip install. Secara default, pip hanya menemukan versi yang stabil.

Detail lebih lanjut silakan merujuk ke Pengenalan Sampel

Dokumentasi tambahan

Untuk dokumentasi yang lebih luas tentang Azure Maps Render, lihat dokumentasi Azure Maps Render di docs.microsoft.com.

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.

Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.