Arcgis deel 1 - NieneB/pzh_web_map GitHub Wiki

Een kaart met ArcGIS JavaScript API

We hebben een web kaart gemaakt met Leaflet. Maar hetzelfde kunnen we ook doen met de ArcGIS JavaScript API.

De ArcGIS JavaScript API is veel uitgebreider dan Leaflet. Maar is daarom ook zwaarder. Je zult merken dat de ArcGIS JS API uit meerdere kleinere bibliotheken bestaat, die we elke keer moeten toevoegen.

Met de ArcGIS JS API kan je zowel 2D als 3D kaarten maken. Het is goed te integreren met de ESRI online omgeving en de ArcGIS server. Zo kan je direct ArcGIS online visualisaties in je ArcGIS JS kaart zetten.

Waar Leaflet gaat voor simpelheid en basis functies, bied ArcGIS JS API je veel meer functionaliteit om een complete User Experience te bouwen. Leaflet kan je ook uitbereiden met plug-ins of custom JavaScript maar ArcGIS JS heeft dit al allemaal geiintegreerd.

Gebruik ook de Documentatie van de ArcGIS JavaScript API. Hier staan veel voorbeelden en uitleg over de mogelijkheden!

De basis

We beginnen met een een nieuwe folder.Dit moet een ander folder zijn als waar je Leaflet kaart staat.

▶️ Maak een nieuwe folder aan om je ArcMap kaart in te maken.

▶️ Open je teksteditor

▶️ Maak een leeg document aan om je HTML pagina van te maken. Kopieer deze code in je document:

<!doctype html>
  <html>
     <head>
      <meta charset="utf-8">
        <title>basis HTML</title>  
      </head>
     <body>
         <H1>voorbeeld</H1>
     </body>
  </html>

▶️ Sla het bestand op in jouwWerkFolder en noem het index.html.

▶️ Plaats een <div> in de <body>.

<div id="map"></div>

▶️ Maak een new bestand aan en sla het op als main.css in jouwWerkFolder.

▶️ Geef de groote van de kaart aan in de CSS:

#map { 
  height: 500px; 
  width:100%;
} 

Ga terug naar je index.html bestand en zet de volgende link naar je CSS bestand in de <head>.

<link rel="stylesheet" href="main.css"/>

Tot nu toe is de basis hetzelfde. Maar in plaats van Leaflet gaat we nu de ArcGIS JavaScript library gaan toevoegen!

ArcGIS JavaScript

▶️ Ga naar https://developers.arcgis.com/javascript/ en kopieer de meest recente library in je html

// Reference the JavaScript API from our CDN and you are ready to get started:
<link rel="stylesheet" href="https://js.arcgis.com/4.10/esri/css/main.css">
<script src="https://js.arcgis.com/4.10/"></script>

▶️ Plak de css in de <head> van je HTML bestand.

▶️ Plak de js bibliotheek in de <body>.

Nu hebben we dit:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>ArcMap JavaScript API example</title>
    <link rel="stylesheet" href="https://js.arcgis.com/4.9/esri/css/main.css">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
</head>
<body>
    <div id="map"></div>
    <script src="https://js.arcgis.com/4.9/"></script>
</body>

De kaart

ArcGIS heeft een net iets andere manier om de kaart te maken dan Leaflet. Ondanks dat het net wat anders wordt opgeschreven komt het op hetzelfde neer:

<script>
require([
        "esri/Map",
        "esri/views/MapView"
    ], function (Map, MapView) {
        // Code to create the map and view will go here

        // INIT MAP
        var map = new Map({
            basemap: "dark-gray"
        });

        // CREATE the 2D Mapview
        var view = new MapView({
            container: "map",  // Reference to the DOM node that will contain the view
            map: map               // References the map object created in step 3
        });
        view.center = [4.306, 52.07]  // Sets the center point of the view at a specified lon/lat
        view.zoom = 10;
    });
</script>

▶️ Voeg dit script toe aan je html bestand.

ℹ️ de basemap wordt door ERSI aangeboden.

▶️ Open de index.html bestand in je browser en zie of de kaart werkt!

ArcGIS JS werkt met een map en een view. We maken hier een 2D mapView maar er zijn ook mogelijkheden om een 3D view te maken. Vooral voor de 3D visualisaties zijn views belangrijk. Leaflet.js kent geen view.

‼️ zie je geen kaart?

Open de debugger

  • Klik met de rechter muisknop in het scherm van de browser en kies : Inspect Element
  • Je kan ook F12 drukken.

De debugger laat de inhoud van de web pagina zien. Maar ook logs en errors! Ga naar het tab blad, Web Console om te zien of er een error is die je een handig kan zijn om je web site de debuggen.

Aanpassen

▶️ Kijk of je een ander kaart van ESRI kan gebruiken voor je achtergrond kaart.

▶️ Zet het zoom level en de middelpunt coördinaten op de provincie Zuid-Holland.

Provincie huis marker

Bij onze Leaflet kaart hebben we een marker toegevoegd aan de kaart. Dit kunnen we in ArcGIS JS ook doen alleen zijn hier weer meer stappen nodig. Dit is omdat de ArcGIS JS API bedoelt is om veel grotere visualisaties te maken, een kleine actie is daarom wat ingewikkelder.

Meer informatie https://developers.arcgis.com/javascript/latest/sample-code/intro-graphics/index.html

▶️ Maak een punt met de coordinaten van het Provincie huis

//Construct a point object
var point = {
    type: "point",
    longitude: 4.317155, 
    latitude: 52.087075
};

▶️ Geef het punt een paar attributen:

    // Create an object for storing attributes related to the line
var pointAtt = {
    Name: "Provincie Huis"
};

▶️ Maak een marker. Dit is een rode marker met een witte lijn.

//Construct a SimpleMarkerSymbol object
var markerSymbol = {
    type: "simple-marker",
    color: [226, 15, 5],
    outline: {
        color: [255, 255, 255],
        width: 2
    }
};

▶️ Nu voegen we alles samen in een Graphic object. De geometry, de marker stijl en de attributen. We kunnen zelfs een pop-up template toevoegen:

    //Construct a Graphic object
var graphic = new Graphic({
    geometry: point,
    symbol: markerSymbol,
    attributes: pointAtt,
        popupTemplate: {  // autocasts as new PopupTemplate()
        title: "{Name}"
    }
});

▶️ Voeg nu het graphic object toe aan de view

// Add GraphicsLayer to Map object
view.graphics.add(graphic);

▶️ Refresh de browser en klik eens op de marker!

➡️ Ga door naar Arcgis deel 2 om een WMS laag toe te voegen.

⚠️ **GitHub.com Fallback** ⚠️