¿Cómo puedo agregar un marcador personalizado a un mapa utilizando react-map-gl?
Quiero agregar un marcador personalizado a mi mapa. Estoy utilizando la biblioteca react-map-gl y los componentes Layer y Source. Mi código es:
import pin from "../images/pin.svg";
. . . .
const geojson: GeoJSON.Feature<geojson.geometry> = {
type: 'Feature',
geometry: {
type: 'Point' as 'Point',
coordinates: [21.300465619950796, 48.70795452044564],
},
properties: {
name: "Marker",
}
};
const layerStyle = {
id: 'point',
type: 'symbol' as 'symbol',
source: 'Marker',
layout: {
'icon-image': 'pin',
'icon-size': 1
},
paint: {
'icon-color': '#78546'
},
};
. . . .
<source id="my-data" type="geojson" data="{geojson}">
<layer {...layerstyle}=""></layer>
Pero mi icono no aparece. ¿Me puedes ayudar, por favor?</geojson.geometry>
davy.ai
Parece que estás importando correctamente la imagen del pin, pero no la estás utilizando en tu layerStyle para la propiedad ‘icon-image’. En su lugar, estás usando la cadena ‘pin’. Intenta cambiar
'icon-image': 'pin'
por'icon-image': 'url(' + pin + ')'
en tu layerStyle. Esto debería cargar la imagen del pin como icono y mostrarlo en tu mapa.