Точки не отображаются на карте из Firestore с GeoFireStore - PullRequest
0 голосов
/ 25 мая 2019

Использование GeoFirestore и Firestore Я пытаюсь разместить точки данных на карте вокруг пользователя.В данный момент выполняется тестирование с 1 точкой данных, чтобы получить начальный результат, но на карте ничего не отображается.

Карта по умолчанию центрирована на -> широта: 3.1467, долгота: 101.6119

Добавлены точки данныхк пожарному депо с широтой и долготой, имя - то же, что и выше -> широта: 3.1467, долгота: 101.6119

enter image description here Карта показана вокруг правильного расположения по центруна моем текущем местоположении.- данные должны отображаться вокруг точки данных, хранящейся в Firestore.

import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Constants, MapView, Permissions, Location, Status } from 'expo';
import * as firebase from "firebase";
require("firebase/firestore");
import { GeoFirestore } from "geofirestore";

// Fill in as appropriate
const FirebaseConfig = {
    // Initialize Firebase
    apiKey: xx
    authDomain: xx
    databaseURL: xx
    projectId: xx
    storageBucket: xx
    messagingSenderId: xx
};

export default class LocationPermission extends Component {
  state = {
    region: { latitude: 3.1467, longitude: 101.6119, latitudeDelta: 0.0922, longitudeDelta: 0.0421 }
  }

  async componentDidMount() {
    firebase.initializeApp(FirebaseConfig);
    // Avoid deprecation warning
    firebase.firestore().settings({
      timestampsInSnapshots: true
    });
    // Get the user's location
    let { status } = await Permissions.askAsync(Permissions.LOCATION);
    let location = await Location.getCurrentPositionAsync({});
    this.setState({
      region: {
        latitude: location.coords.latitude,
        longitude: location.coords.longitude,
        latitudeDelta: 0.01,
        longitudeDelta: 0.01
      }
    });
    // Just a simple collection with one or two premade items
    const locationsRef = firebase.firestore().collection("/Airports");
    const geoFirestore = new GeoFirestore(locationsRef);
    const query = geoFirestore.query({
      center: [this.state.region.latitude, this.state.region.longitude],
      radius: 100
    });
    query.on("ready", () => this.setState({ loading: false }));
    query.on("key_entered", (key, coords, distance) => {
      console.log(key);
    });
  }

  render() {
    return (
      <MapView
        ref={map => (this._mapView = map)}
        style={styles.map}
        showsUserLocation={true}
        showsPointsOfInterest={true}
        followsUserLocation={true}
        provider="google"
        region={this.state.region}
      ></MapView>
    );
  }
}

export {LocationPermission}

const styles = StyleSheet.create({
  map: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
  }
});

На карте показано начальное положение карты по умолчанию, которое установлено для моего текущего местоположения / области

  • поэтому не уверен, почему ничего не отображается на карте, когда все остальное отображается для местоположения пользователя и центра карты

Надеюсь, что кто-то может помочь в этом или направить меня к дальнейшему пониманию.

...