2016-08-18 5 views
0

Теперь, когда я добавил наземную накладку для своей внутренней карты с помощью Google Maps iOS sdk, могу ли я установить синюю точку (текущее местоположение пользователя) вручную с кодом?Установить текущее местоположение в помещении - Карты Google iOS SDK

Я не могу найти способ сделать это. Был бы рад увидеть примерный фрагмент кода.

ответ

1

В основном вам необходимо проверить существенные изменения местоположения, может быть случай, когда пользователь стоит в определенном месте в течение минуты и NSTimer или логики в течение 10 секунд, что вам будут использоваться снова и снова. Для этого вам необходимо проверить существенные изменения местоположения, как указано ниже.

if (nil == locationManager) 
locationManager = [[CLLocationManager alloc] init]; 

locationManager.delegate = self; 
//Configure Accuracy depending on your needs, default is kCLLocationAccuracyBest 
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; 

// Set a movement threshold for new events. 
locationManager.distanceFilter = 500; // meters, set according to the required value. 

[locationManager startUpdatingLocation]; 

Вы не можете сделать это полностью с Google Maps SDK, вы должны использовать рамки CLLocationManger, чтобы получить обновление местоположения.

Инициализировать ваш locationManager зарегистрировать значительные изменения местоположения и настроить делегат правильно

Делегат местоположения сены в:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateLocations:(NSArray *)locations { 
// If it's a relatively recent event, turn off updates to save power. 
    CLLocation* location = [locations lastObject]; 
    NSDate* eventDate = location.timestamp; 
    NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; 
    if (abs(howRecent) < 15.0) { 
    // Update your marker on your map using location.coordinate by using the GMSCameraUpdate object 

    GMSCameraUpdate *locationUpdate = [GMSCameraUpdate setTarget:location.coordinate zoom:YOUR_ZOOM_LEVEL]; 
    [mapView_ animateWithCameraUpdate:locationUpdate]; 


} 

Это может помочь.

1

Это может помочь

CLLocationCoordinate2D inspectionCenter = CLLocationCoordinate2DMake(markerLocation.coordinate.latitude, markerLocation.coordinate.longitude); 
GMSMarker *marker = [[GMSMarker alloc] init]; 
         marker.title = [NSString stringWithFormat:@""]; 
         marker.position = inspectionCenter; 
         marker.appearAnimation = kGMSMarkerAnimationPop; 
         marker.map = mapView; 
         NSString *imageName=[NSString stringWithFormat:@"yourimage"]; 
         marker.icon = [UIImage imageNamed:imageName]; 
+0

спасибо, как насчет того, чтобы представить, что 'inspectCenter' будет меняться каждые 10 секунд, есть ли хороший способ, обеспечивающий удобство работы с батареей? – Gearbox

+0

Является ли человек, использующий ваше приложение ходьбой или вождением? – gurmandeep

+0

только прогулка – Gearbox

Смежные вопросы