GMSMapView Первоначальный рисунок не работает

Я создаю экземпляр GMSMapView как подвид в пользовательском UIView, используя следующий код

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:position.latitude
                                                        longitude:position.latitude
                                                             zoom:CAMZOOM];

if(camera)
{
    self.googleMapView =  [GMSMapView mapWithFrame:self.frame camera:camera];
    self.googleMapView.myLocationEnabled = YES;
    self.googleMapView.delegate=self;

}

Я добавляю несколько UIbutton и GMSMarker в это представление, которые видны без каких-либо проблем, но часто я получаю отрисовку карты, как показано ниже (происходит)

Неправильно нарисован GMSMapView

У меня есть кнопка, которая запускает анимацию в текущем местоположении (см. следующий код), карта рисуется без проблем

[self.googleMapView animateToLocation:self.googleMapView.myLocation.coordinate];

Фиксированный

После того, как я удалил анимацию просмотра (альфа от 0,0 до 1,0 с продолжительностью 1 секунда), эта проблема была исправлена. Теперь мой экземпляр карты загружается с мерцанием, но я могу с этим смириться.


person hrishikesh devare    schedule 23.04.2014    source источник
comment
Пожалуйста, переместите свое решение в собственный ответ, спасибо.   -  person Cœur    schedule 15.07.2018


Ответы (1)


Ваши координаты равны нулю, поэтому вы видите синий океан, а значения широты = 0,0 и долготы = 0,0. Попробуйте установить координаты вручную, назначив известное значение, чтобы убедиться, что оно работает. В конце концов вам нужно научиться использовать делегатов для чтения координат, когда они станут доступны.

person DrBug    schedule 23.04.2014
comment
Это решило мою проблему, поскольку я жестко закодировал свое местоположение, но мне нужно показать текущее местоположение пользователя, которое может быть другим местом в стране. Я использую следующий код. Повлияет ли это на производительность? [self.googleMapView animateToLocation:self.googleMapView.myLocation.coordinate]; ) - person hrishikesh devare; 23.04.2014
comment
Вам необходимо реализовать делегат CLLocationManagerDelegate, чтобы убедиться, что вы готовы прочитать местоположение устройства и внедрить - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations, где вы будете использовать self.googleMapView animateToLocation:self.googleMapView. myLocation.координата - person DrBug; 24.04.2014
comment
Спасибо за ответ на мой запрос, я уже реализовал CLLocationManagerDelegate и отправил действительные координаты в GMSMapView. - person hrishikesh devare; 28.04.2014