У меня есть следующий функциональный компонент реакции, который правильно отображает два статических маркера в рамке «границы», которая подходит для обоих маркеров внутри.
Я хотел бы иметь возможность передавать массив значений широты и долготы для отображения на карте, но я не могу понять, как это сделать.
Это рабочий статический пример:
import React from 'react'
import { MapContainer, TileLayer, Marker } from 'react-leaflet'
import L from 'leaflet'
import 'leaflet/dist/leaflet.css'
const MapLeaflet = () => {
// STATIC MARKER POSITIONS
const position = [42.2974279, -85.628292];
const position2 = [-8.852507, -45.351563];
// BOUNDS CODE
const bounds = L.latLngBounds([position, position2]);
return (
<MapContainer
className=" map"
center={position}
bounds={bounds}
>
<Marker key={key} position={position}>
<Heart/>
</Marker>
<Marker key={key} position={position2}>
<Heart/>
</Marker>
<TileLayer
attribution='&copy <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
</MapContainer>
)
}
Если я пройду {coords}, я смогу динамически отображать маркеры:
const MapLeaflet = ({coors}) => {
...
{ coords && coords.map(coord => (
<Marker key={key} latitude={coord[0]} longitude={coord[1]}>
<SomeMarker/>
</Marker>
))}
...
}
Но очевидно, что карта еще не учитывает эти «координаты» для границ. Вывод console.log массива, переданного в coords, выглядит следующим образом:
0: (2) [51.52167056034225, -0.12894469488176763]
1: (2) [46.58635156377568, 2.1796793230151184]
2: (2) [40.819721, 14.341111]
Как-то мне нужно заменить следующую строку ссылкой на переданные координаты в формате, который принимает код, но я не могу понять, как это сделать.
const bounds = L.latLngBounds([position, position2]);
к чему-то вроде
const bounds = L.latLngBounds({coords});
Любая помощь будет очень высоко ценится.
С уважением, Мэтт
latLngBounds
принимает пару массивов широт. Также зачем использовать {} наlatLngBounds
. значение coords - это не объект, а массив массивов - person kboul   schedule 28.03.2021