gpt4 book ai didi

ios Google Map - 如何在不缩放到相机的情况下获取我的设备位置

转载 作者:行者123 更新时间:2023-11-29 01:45:17 27 4
gpt4 key购买 nike

我正在研究按钮以定期获取我的位置。在实现方面,即使不使用 GMSCameraUpdate 进行对焦,设备也会让 Google Map 相机定期位于 map 中心。您能否告诉我需要增强哪些功能,以便我们可以在不使用相机缩放的情况下定期获取更新的设备位置?

下面是我在onClick之后触发缩放的工作

 if(self.myMapView.myLocation !=nil){
[self.locationManager stopUpdatingLocation];
[CATransaction begin];
[CATransaction setAnimationDuration:0.2];
GMSCameraUpdate *move = [GMSCameraUpdate setTarget:self.myMapView.myLocation.coordinate zoom:self.myMapView.camera.zoom];
[self.myMapView animateWithCameraUpdate:move];
[CATransaction commit];
}

获取位置后委托(delegate)

- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations{
CLLocation *location = [locations lastObject];


if(location==nil){
location = self.myMapView.myLocation;
}

myDeviceLocation = location;

NSLog(@"adasdads zoom ");
if (markera == nil) {
markera = [[GMSMarker alloc] init] ;
markera.position = CLLocationCoordinate2DMake(22.2855200, 114.1576900);
markera.groundAnchor = CGPointMake(0.5f, 0.97f); // Taking into account walker's shadow

markera.map = self.myMapView;


}else {
[CATransaction begin];
[CATransaction setAnimationDuration:2.0];
markera.position = location.coordinate;
markera.icon = nil;
[CATransaction commit];

}

GMSCameraUpdate *move = [GMSCameraUpdate setTarget:location.coordinate zoom:17];
[self.myMapView animateWithCameraUpdate:move];
}



-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)statusX {

NSLog(@"status : %d" , statusX);
if (status == kCLAuthorizationStatusDenied) {
//location denied, handle accordingly
NSLog(@"denied ");

}
else if (statusX == kCLAuthorizationStatusAuthorized) {
//hooray! begin startTracking
NSLog(@"proceed ");
dispatch_async(dispatch_get_main_queue(), ^{
self.myMapView.myLocationEnabled = YES;
});



}else if (statusX == kCLAuthorizationStatusAuthorizedAlways || statusX == kCLAuthorizationStatusAuthorizedWhenInUse) {
self.myMapView.myLocationEnabled = YES;

NSLog(@"gogogo ");
dispatch_async(dispatch_get_main_queue(), ^{
// self.myMapView.myLocationEnabled = YES;
});

最佳答案

你可以试试这个

从您的 didUpdateLocations 委托(delegate)中删除此代码:

GMSCameraUpdate *move = [GMSCameraUpdate setTarget:location.coordinate zoom:17];
[self.myMapView animateWithCameraUpdate:move];

将其移至您稍后可以调用的新函数。

didUpdateLocations 中设置新的用户位置,然后调用 [locationManager stopUpdatingLocation],然后调用新的自定义函数来设置相机。

在新的自定义函数中,更改:

[self.myMapView animateWithCameraUpdate:move];

收件人:

CLLocationCoordinate2D target = myLocation;  //2d coord
self.myMapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:17];

关于ios Google Map - 如何在不缩放到相机的情况下获取我的设备位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com