Я пытаюсь отобразить некоторые координаты широты / долготы, используя комбинацию d3 и листовки.
У меня есть вложенный JSON с гео-координатами, озаглавленный allSFEvents
:
@context: "http://schema.org"
@type: "MusicEvent"
endDate: "2019-01-27"
image: ""
location:
@type: "Place"
address: "San Francisco, CA"
geo:
@type: "GeoCoordinates"
latitude: 37.775
longitude: -122.4183333
__proto__: Object
name: "Natoma Cabana"
__proto__: Object
name: "Winter Olympics"
performer: {url: "https://www.bandsintown.com/a/217960-
winter-olympics?came_from=244", image: "", @type:
"MusicGroup", name: "Winter Olympics"}
startDate: "2019-01-27"
url: "https://www.bandsintown.com/e/1013280443-winter-olympics-at-natoma-cabana?came_from=244"
__proto__: Object
Затем я перебираю allSFEvents
:
allSFEvents.forEach(function(d) {
for (var key in allSFEvents) {
d.latLong = new L.LatLng(allSFEvents[key].location.geo.latitude,
allSFEvents[key].location.geo.longitude);
console.log(d.latLong)
}
})
Всехорошо и хорошо;протоколирование консоли d.latLongs
печатает каждую отдельную пару широта / длинна.
Я отображаю координаты, используя условные обозначения d3 и leaflet:
var events = mapG.selectAll("circle")
.data(allSFEvents)
.enter().append("circle")
.style("stroke", "blue")
.attr("class", 'events')
.style("fill", 'blue')
Логирование консоли events
дает отдельные круги сотдельные пары широта / длинна.
Итак, проблема, кажется, возникает на последнем шаге:
function drawAndUpdateEventCircles() {
events.attr("transform",
function(d) {
var layerPoints = map.latLngToLayerPoint(d.latLong);
console.log(d.latLong)//returns the same lat/long pair over and over
return "translate("+ layerPoints.x +","+ layerPoints.y +")";
}
)
}
drawAndUpdateEventCircles();
map.on("moveend", drawAndUpdateEventCircles);
Если я console.log d.latLong
в функции drawAndUpdateEventCircles
, он читает ту же пару lat / longснова и снова (последняя запись из allSFEvents
) и, таким образом, он отображает только одну особую точку.Поэтому мне интересно, почему я не могу передать d.latLong в функции forEach
функции drawAndUpdateEventCircles
?Спасибо всем заранее.