Слой geojson не отображается при загрузке через d3.json
Слой geojson не отображается, когда я загружаю geojson через d3.json в качестве объекта данных. Однако, если я ссылаюсь на геойсон как на URL, он отображается правильно.
Я использую deck.gl: 6.3.2, mapbox-gl: v0.52.0. Я использую ванильный JavaScript. Когда я запускаю этот код, он не отображается. Я проверил "геомданные". Это хорошо.
d3.json("roads.json", function(geomdata) {
deckgl = new deck.DeckGL({
container,
map: mapboxgl,
mapboxApiAccessToken:
"<myMapBoxKey>,
mapStyle: "mapbox://styles/mapbox/light-v9",
longitude: -98.58,
latitude: 39.82,
zoom: 4,
layers: [
new deck.GeoJsonLayer({
geomdata,
stroked: true,
filled: true,
lineWidthMinPixels: 2,
opacity: 0.4,
getLineColor: [255, 100, 100],
getFillColor: [200, 160, 0, 180]
})
]
});
});
Тем не менее, когда я запускаю это, где geojson является URL, он отображается просто отлично.
d3.json("roads.json", function(geomdata) {
var US_MAP_GEOJSON =
"https://raw.githubusercontent.com/uber-common/deck.gl-data/master/examples/highway/roads.json";
deckgl = new deck.DeckGL({
container,
map: mapboxgl,
mapboxApiAccessToken:
"<myMapBoxAccessKey>",
mapStyle: "mapbox://styles/mapbox/light-v9",
longitude: -98.58,
latitude: 39.82,
zoom: 4,
layers: [
new deck.GeoJsonLayer({
data: US_MAP_GEOJSON ,
stroked: true,
filled: true,
lineWidthMinPixels: 2,
opacity: 0.4,
getLineColor: [255, 100, 100],
getFillColor: [200, 160, 0, 180]
})
]
});
});
Есть намеки / идеи? Спасибо
1 ответ
Решение
Похоже, вы должны передать объект в GeoJsonLayer
, Но ваше первое поле не key: value
комбо, это просто value
, Попробуйте настроить ваши данные следующим образом data: geomdata
,
new deck.GeoJsonLayer({
data: geomdata,
stroked: true,
filled: true,
lineWidthMinPixels: 2,
opacity: 0.4,
getLineColor: [255, 100, 100],
getFillColor: [200, 160, 0, 180]
})