I am trying to add a polygon in a map using MapBox in Angular. I am following this tutorial: https://docs.mapbox.com/mapbox-gl-js/example/geojson-polygon/
I am adding a data source containing GeoJSON data and then adding a new layer to visualize the polygon.
Here's my code:
const map = new mapboxgl.Map({
accessToken: 'pk.eyJ1IjoibWF1cm8xNjE4IiwiYSI6ImNsNGdicm85bTA1NXIzam85ZWhoYWhuNjAifQ.YJ8qpHlaf5HyhztyhMmPTQ',
container: 'map',
style: this.style,
zoom: 5,
center: [-68.137343, 45.137451]
});
map.on('load', () => {
// Add a data source containing GeoJSON data.
map.addSource('maine', {
'type': 'geojson',
'data': {
'type': 'Feature',
'geometry': {
'type': 'Polygon',
// These coordinates outline Maine.
'coordinates': [
[
[-67.13734, 45.13745],
[-66.96466, 44.8097],
[-68.03252, 44.3252],
[-69.06, 43.98],
[-70.11617, 43.68405],
[-70.64573, 43.09008],
[-70.75102, 43.08003],
[-70.79761, 43.21973],
[-70.98176, 43.36789],
[-70.94416, 43.46633],
[-71.08482, 45.30524],
[-70.66002, 45.46022],
[-70.30495, 45.91479],
[-70.00014, 46.69317],
[-69.23708, 47.44777],
[-68.90478, 47.18479],
[-68.2343, 47.35462],
[-67.79035, 47.06624],
[-67.79141, 45.70258],
[-67.13734, 45.13745]
]
]
}
}
});
// Add a new layer to visualize the polygon.
map.addLayer({
'id': 'maine',
'type': 'fill',
'source': 'maine', // reference the data source
'layout': {},
'paint': {
'fill-color': '#0080ff', // blue color fill
'fill-opacity': 0.5
}
});
// Add a black outline around the polygon.
map.addLayer({
'id': 'outline',
'type': 'line',
'source': 'maine',
'layout': {},
'paint': {
'line-color': '#000',
'line-width': 3
}
});
});
'data' is underlined in red and I get the following error:
Error: src/app/modules/admin/apps/google-maps/google-maps.component.ts:157:13 - error TS2322: Type '{ type: "Feature"; geometry: { type: "Polygon"; coordinates: number[][][]; }; }' is not assignable to type 'string | Feature<Geometry, { [name: string]: any; }> | FeatureCollection<Geometry, { [name: string]: any; }>'.
Property 'properties' is missing in type '{ type: "Feature"; geometry: { type: "Polygon"; coordinates: number[][][]; }; }' but required in type 'Feature<Geometry, { [name: string]: any; }>'.
157 'data': {
~~~~~~
node_modules/@types/geojson/index.d.ts:165:5
165 properties: P;
~~~~~~~~~~
'properties' is declared here.
Any ideas how to solve this?? I couldn't find nothing around, thanks.