Firebase发送位置数据时如何更新MapView?

时间:2019-01-30 17:32:12

标签: ios swift firebase firebase-realtime-database

我正在尝试构建一个跟踪应用程序。我为每个用户进行了登录/注册。登录后,用户开始更新位置数据并将其发送到Firebase,TableView也会填充所有注册的用户。在TableView中单击用户后,我将显示一个带有MapView的新控制器。问题是我不知道如何在不单击按钮或类似按钮的情况下触发获取Firebase位置数据,并且数据不应该停止出现直到退出MapView控制器,因为该想法是实时显示用户的位置。

有什么建议吗?预先感谢!

2 个答案:

答案 0 :(得分:0)

您可以在appdelegete类中调用位置确实更新方法。

对于Swift

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last{
        let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
        let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
        self.map.setRegion(region, animated: true)
    }
}

对于目标C

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{  
    if(!newLocation) return;

    if ((oldLocation.coordinate.latitude != newLocation.coordinate.latitude) &&(oldLocation.coordinate.longitude != newLocation.coordinate.longitude))
    {        
      // to  draw path as new location find
        jogPoint = [[JogPoint alloc] initWithCenterCoordinate:newLocation.coordinate];

        [jogPoints addObject:jogPoint];

     }
 }

答案 1 :(得分:0)

好的,我找到了办法。我只需要在观察者中使用Firebase构建并进行设置即可。