从firebase检索数据到谷歌地图

时间:2018-05-01 09:35:46

标签: android google-maps firebase-realtime-database

我正在创建一个从firebase下载LatLng并在google maps API中将其显示为标记的应用,用户可以添加新的LatLngs

在我的数据库中,我还有markers的价格点和类型。在主屏幕中,用户可以选择他想在地图上看到的标记类型。

所以我的应用程序做了这样的事情:

locations.orderByChild(pricepoint).equalTo(choosenPricepoint);

然后我以编程方式检查类型是否与用户选择的类型匹配

int type = Integer.parseInt(locations.child("restaurantType").getValue().toString();
if(type == funCode||  type == runingCode|| type == sportsCode
{
   mMap.addMarker(new MarkerOptions().position(snapshot.getLatlng);
}

它可以在250条记录中正常工作,但我期待在我的数据库中有超过10,000条记录,所以我担心它会太慢。

我不知道是否只显示用户地图相机的标记,删除其他标记会更快。你有什么建议?

1 个答案:

答案 0 :(得分:1)

您可以使用GeoFire,这是一个使用GeoHashes将lat + lon合并为单个属性的firebase库。这样您就可以直接在数据库上进行距离过滤。

你应该在firebase数据库中有2个条目,一个用于设置对象位置,另一个用于设置对象及其字段。

enter image description here

正如你所看到的那样id。所以首先你要在geo_data条目中通过GeoFire查询附近的对象,你会得到附近物体的id,然后你可以使用我ids条目中的user_data直接从数据库中检索对象及其属性