Загрузка mapbox с базой данных Firebase

#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);
}