Esri Leaflet: Advanced Topics
Allan Laframboise
slides.com/alaframboise
Agenda
-
Core Classes
-
Authentication
-
Debugging
-
Contributing
-
Plugins
Esri Leaflet
-
Plugin for accessing ArcGIS Services
-
Built on top of Leaflet
What can it do?
- Display ArcGIS basemaps and tiles
- Zoom and pan
- Symbolize FeatureLayers (vector layers)
- Show popups with feature attributes
- Handle events
- Everything else Leaflet does...
What else can it do?
- Tasks: Query, Find, Identify...
- Get Time-based data
- Convert ArcGIS JSON to GeoJSON
- Fetch feature collections
- Authenticated and proxied requests
How does it work?
- Extends Leaflet classes
- Provides new classes (functionality)
L.esri.xxx Classes
ArcGIS Basemaps
ArcGIS Dynamic MapLayers
ArcGIS FeatureLayers
Accessing Secure Services
- ArcGIS Online or Server Feature Services
- Accessing data/services hosted in portals
- Premium Services/Content
Registering Apps
- Go to developers.arcgis.com
- Register a new app
- Add redirect URIs
- Use ID
Accessing the Source
- CDN
- npm
- Bower
- Fork and Clone
CDN References
<html>
<head>
<meta charset=utf-8 />
<title>Showing an ArcGIS basemap</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<!-- Load Leaflet from CDN-->
<link rel="stylesheet" href="//cdn.jsdelivr.net/leaflet/0.7.3/leaflet.css" />
<script src="//cdn.jsdelivr.net/leaflet/0.7.3/leaflet.js"></script>
<!-- Complete Build -->
<!--script src="http://cdn.jsdelivr.net/leaflet.esri/1.0.0/esri-leaflet.js"></script-->
<!-- Core Build -->
<script src="//cdn.jsdelivr.net/leaflet.esri/1.0.0/builds/core/esri-leaflet-core.js"></script>
<!-- Basemaps Only Build -->
<script src="//cdn.jsdelivr.net/leaflet.esri/1.0.0/builds/basemaps/esri-leaflet-basemaps.js"></script>
<style>
body { margin:0; padding:0; }
#map { position: absolute; top:0; bottom:0; right:0; left:0; }
</style>
</head>
<body>
<div id="map"></div>
<script>
var map = L.map('map').setView([37.78, -92.85], 4);
L.esri.basemapLayer('Streets').addTo(map);
</script>
</body>
</html>
Browser Debugging
Code Map
Debugging Locally
- Fork and Clone
- npm install (dist)
- npm run serve
- sample.html
Custom Builds
- esri-leaflet.js
- Comment exports
Plugins and Extensions
- Renderers
- Cluster
- Heatmap
- Draw/Edit
- Proj4Leaflet
Version Compatibility
Esri Leaflet 1.0.0 + Leaflet 0.7.x
Esri Leaflet 2.0.0-beta 6 + Leaflet 1.0-beta 1
What's coming?
- Vector Tile support
- Fractional zooming
- Better projection support
- Demographic data plugin
- Webmaps support?
Ways to participate?
- Issues
- Bug fixes
- Samples
- Plug-ins
Thank you!
Allan Laframboise
Esri Leaflet: Advanced Topics
By alaframboise
Esri Leaflet: Advanced Topics
- 2,962