Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Maps Web SDK tillhandahåller en tjänstmodul. Den här modulen är ett hjälpbibliotek som gör det enkelt att använda Azure Maps REST-tjänster i webb- eller Node.js-program med hjälp av JavaScript eller TypeScript.
Anmärkning
Azure Maps Web SDK-tjänstmodulen dras tillbaka
Azure Maps Web SDK-tjänstmodulen är nu inaktuell och dras tillbaka den 26-09-30. För att undvika avbrott i tjänsten rekommenderar vi att du migrerar till Azure Maps JavaScript REST SDK senast den 26-09-30. Mer information finns i Utvecklarguide för JavaScript/TypeScript REST SDK (förhandsversion).
Använda tjänstmodulen på en webbsida
- Skapa en ny HTML-fil. 
- Läs in modulen för Azure Maps-tjänster. Du kan läsa in den på något av två sätt: - Använd den globalt värdbaserade Azure Content Delivery Network-versionen av Azure Maps-tjänstmodulen. Lägg till en skriptreferens till <head>-elementet i filen:
 - <script src="https://atlas.microsoft.com/sdk/javascript/service/2/atlas-service.min.js"></script>- Du kan också ladda tjänstmodulen för källkoden till Azure Maps Web SDK lokalt med hjälp av azure-maps-rest npm-paketet och sedan hosta den tillsammans med din app. Det här paketet innehåller även TypeScript-definitioner. Använd det här kommandot: - npm install azure-maps-rest- Använd sedan en importdeklaration för att lägga till modulen i en källfil: - import * as service from "azure-maps-rest";
 
- Använd den globalt värdbaserade Azure Content Delivery Network-versionen av Azure Maps-tjänstmodulen. Lägg till en skriptreferens till 
- Skapa en autentiseringspipeline. Pipelinen måste skapas innan du kan initialisera en klientslutpunkt för tjänstens URL. Använd din egen Azure Maps-kontonyckel eller Microsoft Entra-autentiseringsuppgifter för att autentisera en Azure Maps Search-tjänstklient. I det här exemplet skapas URL-klienten för söktjänsten. - Om du använder en prenumerationsnyckel för autentisering: - // 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);- Om du använder Microsoft Entra-ID för autentisering: - // 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; }- För mer information, se Autentisering med Azure Maps. 
- Följande kod använder den nyligen skapade URL-klienten för Azure Maps Search-tjänsten för att geokoda en adress: "1 Microsoft Way, Redmond, WA". Koden använder - searchAddressfunktionen och visar resultatet som en tabell i sidtexten.- // 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(''); });
Här är det fullständiga kodexemplet som körs:
<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>
Följande bild är en skärmdump som visar resultaten av detta exempel på kod, en tabell med den sökta adressen tillsammans med de resulterande koordinaterna.
              
               
              
              
            
Molnstöd för Azure Government
Azure Maps Web SDK stöder Azure Government-molnet. Alla JavaScript- och CSS-URL:er som används för att komma åt Azure Maps Web SDK förblir desamma, men följande uppgifter måste utföras för att ansluta till Azure Government-molnversionen av Azure Maps-plattformen.
När du använder den interaktiva kartkontrollen lägger du till följande kodrad innan du skapar en instans av Map klassen.
atlas.setDomain('atlas.azure.us');
Se till att använda autentiseringsuppgifter från Azure Maps från Azure Government-molnplattformen vid autentisering av kartan och tjänsterna.
Domänen för tjänsterna måste anges när du skapar en instans av en API URL-slutpunkt. Följande kod skapar till exempel en instans av SearchURL klassen och pekar domänen till Azure Government-molnet.
var searchURL = new atlas.service.SearchURL(pipeline, 'atlas.azure.us');
Om du direkt använder Azure Maps REST-tjänsterna, ändra URL-domänen till atlas.azure.us. Exempelvis, om du använder sök-API-tjänsten, ändra URL-domänen från https://atlas.microsoft.com/search/ till https://atlas.azure.us/search/.
Nästa steg
Läs mer om de klasser och metoder som används i den här artikeln:
Fler kodexempel som använder tjänstmodulen finns i följande artiklar: