#firebase #firebase-realtime-database #mapbox #geojson
# #огневая база #firebase-база данных в реальном времени #mapbox #geojson
Вопрос:
Я пытаюсь изучить Firebase и Mapbox и хотел интегрировать их. Firebase хранит некоторые мои данные в следующем формате:
{
"messages" : {
"-KUE2EwfvbI48Azw01Hv" : {
"geometry" : {
"coordinates" : [ 28.6618976, 77.22739580000007 ],
"type" : "Point"
},
"properties" : {
"description" : "xyz",
"hashtag" : "#xyz",
"imageUrl" : "xyz.jpg",
"name" : "Xyz Xyz",
"photoUrl" : "xyz.jpg",
"title" : "XYZ"
},
"type" : "Issue"
},
"-KUD2EwfvbI48Azw01Hv" : {
"geometry" : {
"coordinates" : [ 12.9715987, 77.59456269999998 ],
"type" : "Point"
},
"properties" : {
"description" : "xyz",
"hashtag" : "#xyz",
"imageUrl" : "xyz.jpg",
"name" : "Xyz Xyz",
"photoUrl" : "xyz.jpg",
"title" : "XYZ"
},
"type" : "Issue"
}
}
}
Есть ли способ загрузить данные и отобразить их в Mapbox? Для примеров требуется файл GeoJSON, размещенный где-то, который можно использовать для их построения. Как мы можем использовать базу данных Firebase для построения графика на Mapbox в режиме реального времени?
Извините, если мой вопрос неоднозначен. Я готов предоставить больше информации, если это необходимо: D
Спасибо!
Ответ №1:
Вы можете загрузить данные, но сначала вам нужно преобразовать их в действительный объект GeoJSON.
Вот JSFiddle, использующий предоставленные вами данные: https://jsfiddle.net/mkrv9uuy /
var firebaseGeojsonFeatures = [];
for (var key in firebaseData.messages) {
var f = firebaseData.messages[key];
f.type = "Feature";
firebaseGeojsonFeatures.push(f);
}