Способ создания маркеров выглядит некорректно, поскольку с каждой итерацией по набору объектов маркеры предвидения восстанавливаются (я думаю, причина, по которой title
ссылается на одно и то же значение).
В следующем примере показано, как создать маркеры и установить title
для ссылки на соответствующую функцию ptoperty:
getData() {
this.http
.get(
`https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson`,{},{}
)
.then(data => {
let geojson = JSON.parse(data.data);
for (let feature of geojson["features"]) {
let markerProps = {
title: feature.properties.title,
position: {
lng: feature.geometry.coordinates[0],
lat: feature.geometry.coordinates[1]
}
};
let marker = this.map.addMarker(markerProps).then(marker => {
marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe(() => {
//...
});
});
}
});
}
Другой вариант - использовать функцию map.addMarkerSync
:
let geojson = JSON.parse(data.data);
for (let feature of geojson["features"]) {
let markerProps = {
title: feature.properties.title,
position: {
lng: feature.geometry.coordinates[0],
lat: feature.geometry.coordinates[1]
}
};
let marker = this.map.addMarkerSync(markerProps);
marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe(() => {
//...
});
}