Add markers to a web map with a symbol layer
This example draws points from a GeoJSON collection to a map.
Upon loading, the map uses loadImage
to add an image to the application, addSource
to add a collection of points to the application, and then addLayer
to draw the image on the map at each point location.
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>Add markers to a web map with a symbol layer</title><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /><script src="https://cdn.ndrive.com/nmapsgl/v.1.6.8/nmaps-gl.js"></script><link href="https://cdn.ndrive.com/nmapsgl/v.1.6.8/nmaps-gl.css" rel="stylesheet" /><style> body { margin: 0; padding: 0; } #map { position: absolute; top: 0; bottom: 0; width: 100%; }</style></head><body><div id="map"></div><script> // TO MAKE THE MAP APPEAR YOU MUST ADD YOUR ACCESS TOKEN nmapsgl.accessToken = '<your access token here>'; const map = new nmapsgl.Map({container: 'map',style: 'Streets',center: [-96, 37.8],zoom: 3}); map.on('load', () => {// Add an image to use as a custom markermap.loadImage('https://nmaps-gl.ndrive.com/nmaps-gl-js/assets/custom_marker.png',(error, image) => {if (error) throw error;map.addImage('custom-marker', image);// Add a GeoJSON source with 2 pointsmap.addSource('points', {'type': 'geojson','data': {'type': 'FeatureCollection','features': [{'type': 'Feature','geometry': {'type': 'Point','coordinates': [-77.03238901390978, 38.913188059745586]},'properties': {'title': 'NMaps DC'}},{// feature for NMaps SF'type': 'Feature','geometry': {'type': 'Point','coordinates': [-122.414, 37.776]},'properties': {'title': 'NMaps SF'}}]}}); // Add a symbol layermap.addLayer({'id': 'points','type': 'symbol','source': 'points','layout': {'icon-image': 'custom-marker',// get the title name from the source's "title" property'text-field': ['get', 'title'],'text-font': ['Open Sans Regular'],'text-offset': [0, 1.25],'text-anchor': 'top'}});});});</script> </body></html>