Az Azure Térképek-szolgáltatások modul használata
Az Azure Térképek Web SDK szolgáltatásmodult biztosít. Ez a modul egy segédkönyvtár, amely megkönnyíti az Azure Térképek REST-szolgáltatások webes vagy Node.js alkalmazásokban való használatát JavaScript vagy TypeScript használatával.
Feljegyzés
Azure Térképek Web SDK szolgáltatásmodul kivonása
Az Azure Térképek Webes SDK szolgáltatásmodul elavult, és 26.30.09-én megszűnik. A szolgáltatáskimaradások elkerülése érdekében javasoljuk, hogy 9/30/26-ig migráljon az Azure Térképek JavaScript REST SDK-ba. További információ: JavaScript/TypeScript REST SDK fejlesztői útmutató (előzetes verzió).
A szolgáltatások modul használata weblapon
Hozzon létre egy új HTML-fájlt.
Töltse be az Azure Térképek-szolgáltatások modult. Kétféleképpen töltheti be:
- Használja az Azure Térképek szolgáltatásmodul globálisan üzemeltetett Azure Content Delivery Network-verzióját. Adjon hozzá szkripthivatkozást a
<head>
fájl eleméhez:
<script src="https://atlas.microsoft.com/sdk/javascript/service/2/atlas-service.min.js"></script>
Másik lehetőségként töltse be az Azure Térképek Web SDK forráskódjához tartozó szolgáltatási modult helyileg az azure-maps-rest npm csomag használatával, majd üzemeltetje azt az alkalmazással. Ez a csomag TypeScript-definíciókat is tartalmaz. Használja a következő parancsot:
npm install azure-maps-rest
Ezután egy importálási deklarációval adja hozzá a modult egy forrásfájlhoz:
import * as service from "azure-maps-rest";
- Használja az Azure Térképek szolgáltatásmodul globálisan üzemeltetett Azure Content Delivery Network-verzióját. Adjon hozzá szkripthivatkozást a
Hozzon létre egy hitelesítési folyamatot. A folyamatnak létre kell hoznia a szolgáltatás URL-ügyfélvégpontjainak inicializálása előtt. Az Azure Térképek Search szolgáltatás-ügyfél hitelesítéséhez használja saját Azure Térképek-fiókkulcsát vagy Microsoft Entra-hitelesítő adatait. Ebben a példában a Search szolgáltatás URL-ügyfél jön létre.
Ha előfizetési kulcsot használ a hitelesítéshez:
// Get an Azure Maps key at https://azure.com/maps. var subscriptionKey = '<Your Azure Maps Key>'; // Use SubscriptionKeyCredential with a subscription key. var subscriptionKeyCredential = new atlas.service.SubscriptionKeyCredential(subscriptionKey); // Use subscriptionKeyCredential to create a pipeline. var pipeline = atlas.service.MapsURL.newPipeline(subscriptionKeyCredential, { retryOptions: { maxTries: 4 } // Retry options }); // Create an instance of the SearchURL client. var searchURL = new atlas.service.SearchURL(pipeline);
Ha a Hitelesítéshez Microsoft Entra-azonosítót használ:
// Enter your Azure AD client ID. var clientId = "<Your Azure Active Directory Client Id>"; // Use TokenCredential with OAuth token (Azure AD or Anonymous). var aadToken = await getAadToken(); var tokenCredential = new atlas.service.TokenCredential(clientId, aadToken); // Create a repeating time-out that will renew the Azure AD token. // This time-out must be cleared when the TokenCredential object is no longer needed. // If the time-out is not cleared, the memory used by the TokenCredential will never be reclaimed. var renewToken = async () => { try { console.log("Renewing token"); var token = await getAadToken(); tokenCredential.token = token; tokenRenewalTimer = setTimeout(renewToken, getExpiration(token)); } catch (error) { console.log("Caught error when renewing token"); clearTimeout(tokenRenewalTimer); throw error; } } tokenRenewalTimer = setTimeout(renewToken, getExpiration(aadToken)); // Use tokenCredential to create a pipeline. var pipeline = atlas.service.MapsURL.newPipeline(tokenCredential, { retryOptions: { maxTries: 4 } // Retry options }); // Create an instance of the SearchURL client. var searchURL = new atlas.service.SearchURL(pipeline); function getAadToken() { // Use the signed-in auth context to get a token. return new Promise((resolve, reject) => { // The resource should always be https://atlas.microsoft.com/. const resource = "https://atlas.microsoft.com/"; authContext.acquireToken(resource, (error, token) => { if (error) { reject(error); } else { resolve(token); } }); }) } function getExpiration(jwtToken) { // Decode the JSON Web Token (JWT) to get the expiration time stamp. const json = atob(jwtToken.split(".")[1]); const decode = JSON.parse(json); // Return the milliseconds remaining until the token must be renewed. // Reduce the time until renewal by 5 minutes to avoid using an expired token. // The exp property is the time stamp of the expiration, in seconds. const renewSkew = 300000; return (1000 * decode.exp) - Date.now() - renewSkew; }
További információ: Hitelesítés az Azure Térképek.
Az alábbi kód az újonnan létrehozott Azure Térképek Search szolgáltatás URL-ügyfél használatával geokódolja a következő címeket: "1 Microsoft Way, Redmond, WA". A kód a függvényt
searchAddress
használja, és táblázatként jeleníti meg az eredményeket az oldal törzsében.// Search for "1 microsoft way, redmond, wa". searchURL.searchAddress(atlas.service.Aborter.timeout(10000), '1 microsoft way, redmond, wa') .then(response => { var html = []; // Display the total results. html.push('Total results: ', response.summary.numResults, '<br/><br/>'); // Create a table of the results. html.push('<table><tr><td></td><td>Result</td><td>Latitude</td><td>Longitude</td></tr>'); for(var i=0;i<response.results.length;i++){ html.push('<tr><td>', (i+1), '.</td><td>', response.results[i].address.freeformAddress, '</td><td>', response.results[i].position.lat, '</td><td>', response.results[i].position.lon, '</td></tr>'); } html.push('</table>'); // Add the resulting HTML to the body of the page. document.body.innerHTML = html.join(''); });
Íme a teljes, futó kódminta:
<html>
<head>
<script src="https://atlas.microsoft.com/sdk/javascript/service/2/atlas-service.min.js"></script>
<script type="text/javascript">
// Get an Azure Maps key at https://azure.com/maps.
var subscriptionKey = '{Your-Azure-Maps-Subscription-key}';
// Use SubscriptionKeyCredential with a subscription key.
var subscriptionKeyCredential = new atlas.service.SubscriptionKeyCredential(subscriptionKey);
// Use subscriptionKeyCredential to create a pipeline.
var pipeline = atlas.service.MapsURL.newPipeline(subscriptionKeyCredential, {
retryOptions: { maxTries: 4 } // Retry options
});
// Create an instance of the SearchURL client.
var searchURL = new atlas.service.SearchURL(pipeline);
// Search for "1 microsoft way, redmond, wa".
searchURL.searchAddress(atlas.service.Aborter.timeout(10000), '1 microsoft way, redmond, wa')
.then(response => {
var html = [];
// Display the total results.
html.push('Total results: ', response.summary.numResults, '<br/><br/>');
// Create a table of the results.
html.push('<table><tr><td></td><td>Result</td><td>Latitude</td><td>Longitude</td></tr>');
for(var i=0;i<response.results.length;i++){
html.push('<tr><td>', (i+1), '.</td><td>',
response.results[i].address.freeformAddress,
'</td><td>',
response.results[i].position.lat,
'</td><td>',
response.results[i].position.lon,
'</td></tr>');
}
html.push('</table>');
// Add the resulting HTML to the body of the page.
document.body.innerHTML = html.join('');
});
</script>
</head>
<style>
table {
border: 1px solid black;
border-collapse: collapse;
}
td, th {
border: 1px solid black;
padding: 5px;
}
</style>
<body> </body>
</html>
Az alábbi képen egy képernyőkép látható a mintakód eredményeiről, egy tábláról, amelyben a keresett cím és az eredményül kapott koordináták láthatók.
Az Azure Government felhőtámogatása
Az Azure Térképek Web SDK támogatja az Azure Government-felhőt. Az Azure Térképek Webes SDK eléréséhez használt Összes JavaScript- és CSS-URL-cím változatlan marad, azonban az alábbi feladatokat kell elvégezni az Azure Térképek platform Azure Government-felhőverzióhoz való csatlakozáshoz.
Az interaktív térképvezérlő használatakor az osztálypéldány létrehozása előtt adja hozzá a következő kódsort Map
.
atlas.setDomain('atlas.azure.us');
Ügyeljen arra, hogy a térkép és a szolgáltatások hitelesítése során az Azure Government felhőplatformjáról használjon Azure Térképek hitelesítési adatokat.
A szolgáltatások tartományát be kell állítani egy API URL-végpont példányának létrehozásakor. Az alábbi kód például létrehozza az SearchURL
osztály egy példányát, és a tartományt az Azure Government-felhőre mutatja.
var searchURL = new atlas.service.SearchURL(pipeline, 'atlas.azure.us');
Ha közvetlenül hozzáfér az Azure Térképek REST-szolgáltatásokhoz, módosítsa az URL-tartományt a következőreatlas.azure.us
: . Ha például a keresési API-szolgáltatást használja, módosítsa az URL-tartományt a következőre https://atlas.microsoft.com/search/
https://atlas.azure.us/search/
.
Következő lépések
További információ a cikkben használt osztályokról és módszerekről:
A szolgáltatási modult használó további kódmintákért tekintse meg az alábbi cikkeket: