地理空間検索を使用する

Cloud Firestore で地理空間クエリを実行して、位置情報を認識するサービスを構築できます。たとえば、ユーザーと周辺のスポット間の距離を検索し、近い順に並べ替えることができます。

エディションの要件

地理空間検索機能には、Firestore Enterprise エディションのデータベースが必要です。

始める前に

地理空間検索を実行するには、まず、検索対象のフィールドの地理空間インデックスを作成する必要があります。

地理空間検索を実行するには、search(...) ステージの query パラメータ内で geoDistance 式を使用します。

小なりイコール(<=)演算子のみがサポートされています。距離はメートル単位で測定されます。

たとえば、次のクエリは、リストされているジオポイントから 1,000 メートル以内のすべてのレストランを検索します。

Web

firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });
iOS
firestore.pipeline().collection("restaurants")
    .search(
        query: Field("location")
            .geoDistance(GeoPoint(latitude: 38.989177, longitude: -107.065076))
            .lessThan(1000)
    )
Android
firestore.pipeline()
        .collection("restaurants")
        .search(new SearchOptions()
                .withQuery(field("location")
                        .geoDistance(new GeoPoint(38.989177, -107.065076))
                        .lessThan(1000 /* meters */)));
Node.js
firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });