Я пытаюсь взять массив объектов с точками широты и долготы и создать Marker
для каждого, а затем передать эти Marker
s в компонент <MarkerClusterer>
.
Копируя прямо с документов здесь Я могу заставить это работать. Однако их подход немного отличается от того, что мне нужно.
Разница, похоже, заключается в том, как точки отображаются на компонент.
Рабочий код:
<MarkerClusterer
options={{imagePath:"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m"}}
>
{
(clusterer) => [
{lat: -31.563910, lng: 147.154312},
{lat: -33.718234, lng: 150.363181},
{lat: -33.727111, lng: 150.371124},
{lat: -33.848588, lng: 151.209834}
].map((location, i) => (
<Marker
key={i}
position={location}
clusterer={clusterer}
/>
))
}
</MarkerClusterer>
Мой нерабочий код:
const listings = [
{ lat: -31.56391, lng: 147.154312 },
{ lat: -33.718234, lng: 150.363181 },
{ lat: -33.727111, lng: 150.371124 },
{ lat: -33.848588, lng: 151.209834 },
];
let testArray = [];
for (let i = 0; i < listings.length; i++) {
let location = listings[i];
testArray.push(
<Pin position={location} id={i} key={i} clusterer={listings} />
);
}
...
<MarkerClusterer>
{testArray}
</MarkerClusterer>
А вот код и поле с примером. Код находится в Map2.js, а разница в строке 61.
Я не могу понять, что делает первый подход, а я нет. Может быть, ссылка на кластер? Любая помощь в этой области будет принята с благодарностью.