Apptemplates maken

Als u zelf een aangepaste webapptemplate wilt maken, kunt u een van de bestaande templates downloaden en aanpassen, een bestaande webapp updaten om te werken met inhoud van ArcGIS Online of een nieuwe webapp bouwen met een van de ArcGIS Web API's. Ongeacht de manier waarop u uw eigen template maakt, u werkt altijd met URL-parameters en kaarten. U kunt werken met groepen als u een groepstemplate maakt en u kunt extra vereisten overwegen om te werken met Bing-basiskaarten, toegang te krijgen tot niet-openbare kaarten en te werken met hulpbronnen die een proxy of CORS (Cross-Origin Resource Sharing) vereisen. U kunt ook uw item toevoegen aan ArcGIS Online, en, als uw organisatie van plan is om uw template in de templategalerij te gebruiken, kunt u het delen met een van de templategroepen van uw organisatie.

TipTip:
Als u een startapp zoekt die alle code bevat die u nodig hebt om een webapptemplate te maken, downloadt u de Application Boilerplate op GitHub.

In dit onderwerp vindt u meer informatie over het maken van een webapptemplate. Zodra u uw template hebt gemaakt, kunt u deze configureerbaar maken. Met configureerbare templates kunnen gebruikers het uiterlijk en het gedrag van een app aanpassen.

URL-parameters

Als u een template gebruikt, geeft u op welke kaart of groep moet worden weergegeven door de ID van de webmap of group als URL-parameter in de template op te nemen. Webmap-ID's worden opgegeven met behulp van de parameter webmap en groepsinhoud met behulp van de parameter group. Als u wilt dat uw aangepaste template werkt met de huidige kaart of groep, moet u de code in de app opnemen om de huidige webmap- of groeps-ID van de URL te extraheren.

U kunt bijvoorbeeld de kaart Basiskaart Europa in de template Basisviewer weergeven.

Als u dit wilt doen, start u met de URL van de Basisviewer:

http://www.arcgis.com/apps/OnePane/basicviewer/index.html

Kopieer het gedeelte webmap= van de URL van de Basiskaart Europa:

http://www.arcgis.com/home/webmap/viewer.html?webmap=5421a40574914458892efe74f0149025

Voeg dit toe aan het einde van de URL van de Basisviewer:

http://www.arcgis.com/apps/OnePane/basicviewer/index.html?webmap=5421a40574914458892efe74f0149025

De JavaScript-API beschikt over een hulpmethode esri.urlToObject die dit proces vereenvoudigt. Deze methode zet de URL-parameters om in een object.

var webmap;
var urlObject = esri.urlToObject(document.location.href);

Zodra u de URL-parameters als een object hebt, kunt u de verschillende invoergegevens openen. U kunt bijvoorbeeld de waarde voor de URL-parameter van de webmap toewijzen aan een variabele genaamd webmap_id.

var webmap_id = urlObject.query.webmap;
OpmerkingOpmerking:

Als de app configureerbaar is, moet u ook een URL-parameter genaamd appid opnemen die de configuratie-instellingen definieert.

Webmaps

Apptemplates zijn ontworpen om te werken met de momenteel weergegeven kaart in de ArcGIS.com-map viewer. Templates maken doorgaans een kaart op basis van de webmap die is opgegeven in de URL-parameter van de webmap. Elk van de web-API's beschikt over een hulpmethode die een kaart maakt met behulp van informatie van de webmap-ID.Voor meer informatie over het gebruik van API's om te werken met webmaps, raadpleegt u het Overzicht van de ArcGIS for JavaScript API.

U kunt bijvoorbeeld de methode esri.arcgis.utils.createMap van de ArcGIS API for JavaScript gebruiken om een kaart te maken op basis van de invoer-ID. U kunt ook een callbackfunctie opnemen die wordt uitgevoerd wanneer de synchrone aanvraag naar esri.arcgis.utils.createMap voltooid is.

esri.arcgis.utils.createMap(webmap,"map",{
   mapOptions:{
     slider:false
   },
   bingMapsKey:bingMapsKey
}).then(function(response){
    map = response.map;
});
OpmerkingOpmerking:

Als een van uw webmaps een Bing Maps-basiskaart bevat, moet u een Bing Maps-sleutel opgeven wanneer u de createMap-methode gebruikt. Er zijn diverse andere kaartopties die u kunt opgeven, zoals of u al dan niet de schuifregelaar, navigatie, referentie enzovoort wilt weergeven.

De callback-functie biedt toegang tot een antwoordobject dat toegang tot het kaartobject, kaartlagen enzovoort biedt. Voor meer informatie over de Map-klasse raadpleegt u ArcGIS API for JavaScript.

Groep

Groepstemplates geven inhoud van de opgegeven groep weer als een galerijapp.

De ArcGIS REST API biedt toegang tot inhoud van ArcGIS Online. U kunt deze gebruiken om groepsinhoud op te halen op basis van de invoergroeps-ID. Voor meer informatie over het werken met de REST API raadpleegt u het Overzicht van de ArcGIS REST API.

In dit voorbeeld voert u een query uit om een groep te vinden met de invoer-ID.

var portal = new esri.arcgis.Portal('http://www.arcgis.com');
dojo.connect(portal, 'onLoad',function(){
    portal.queryGroup(groupid).then(function(response){
        var group = response.results[0];
     });
});

Zodra u de groep hebt gevonden, kunt u een query uitvoeren om items van de groep op te halen.

In dit voorbeeld voert u een query uit op de groep om vijf items van het type Webmap of Webmapapplicatie te vinden.

var queryParams = {
    q: 'type:"Web Map" -type:"Web Mapping Application"',
    num: 5
 };
group.queryItems(queryParams).then(function(response){
    var groupItems = response.results;
});

Bijkomende overwegingen

Templates worden doorgaans ontworpen om te werken met verschillende typen inhoud, zodat u mogelijk de template moet instellen om kaarten met Bing Maps-basiskaarten, niet-openbare inhoud enzovoort op te nemen. Specifieke overwegingen worden hieronder weergegeven.

Bing Maps-sleutel

Als een van de kaarten die u wilt weergeven, een Bing Maps-basiskaart gebruikt, moet u een Bing Maps-sleutel in uw app opnemen. De Bing Maps-sleutel wordt aangeboden als parameter bij de createMap-methode.

Identity Manager

De Identity Manager vereenvoudigt het proces van werken met beveiligde hulpbronnen. Deze vraagt de gebruiker om zijn of haar referenties op te geven, een token te genereren en deze aan de hulpbron toe te voegen. Als u de Identity Manager-klasse opneemt in uw templateapp, werkt de template met openbare en privékaarten. Voor meer informatie over Identity Manager raadpleegt u ArcGIS for JavaScript

Neem de volgende codelijn in uw app op om IdentityManager in te schakelen:

dojo.require("esri.IdentityManager");

OpmerkingOpmerking:

U moet ook SSL configureren op de webserver die uw app host.

Proxy- en CORS-ondersteuning

Omdat uw app interdomeinaanvragen zal doen aan ArcGIS Online, moet u CORS (Cross-Origin Resource Sharing) inschakelen of een proxy aan uw app toevoegen.

De template aan ArcGIS Online toevoegen

Als u de template hebt gemaakt en deze op uw webserver hebt gehost, voegt u de template toe aan ArcGIS Online als webappitem en geeft u de URL naar de app op. Kies Configureerbaar voor het doel. Kies JavaScript voor de API. U kunt het item ook toevoegen via de ArcGIS REST API..

Let erop dat u een beschrijvende titel en samenvatting toevoegt, omdat deze informatie wordt weergegeven wanneer gebruikers het template-item aanwijzen in de templategalerij. U kunt ook een ZIP-bestand maken dat uw appbestanden bevat, en dit toevoegen aan het item om downloaden mogelijk te maken.

De template in de galerij van uw organisatie gebruiken

Als u de template in de galerij met kaarttemplates of de galerij met groepstemplates van uw organisatie wilt gebruiken, deelt u het item met de groep die wordt gebruikt voor de templates. Vervolgens kan de beheerder van uw organisatie de map viewer configureren of groepen configureren om de groep te gebruiken die uw template bevat.

2/14/2014