Перезагрузка Google Map View при добавлении и удалении маркеров - PullRequest
0 голосов
/ 30 октября 2018

Мы кодируем в Swift, чтобы создать приложение с кнопками пользовательского интерфейса. Эти кнопки пользовательского интерфейса будут добавлять или удалять маркеры в зависимости от его статуса. Поскольку мы хотим, чтобы кнопки располагались поверх карт Google, у нас есть два контроллера вида. Контроллер вида сверху содержит кнопку. Когда кнопка нажата, мы хотим удалить маркеры, которые имеют «плохой» статус.

Это наш код для удаления маркера:

func showOnlyGood(){
   mapView.clear() //this is the google map (GMSMapView.map)
   for x in arrayOfGood { //Array of good markers
      x.map = mapView //Set good markers to show
   }
   for y in arrayOfBad { //Array of bad markers
      y.map = nil //removes markers from map
   }
}

Карты Google обновляются, если вызов функции выполняется в viewDidLoad (), но когда мы вызываем функцию в контроллере вида сверху с помощью кнопок, она не обновляет карту соответствующим образом.

Мы думаем, что это проблема с обновлением представления карты Google, и перепробовали много разных решений, но представление карты Google показывает только то, что изначально было в viewDidLoad ().

1 Ответ

0 голосов
/ 30 октября 2018

Во-первых, если вы просто хотите, чтобы кнопки были расположены сверху карты, просто добавьте кнопки в вид после добавления карты в вид; не создавайте второй контроллер представления. Ваша проблема, скорее всего, вызвана этой неловкой настройкой. У вас также нет префикса @objc в вашем методе действия, который определенно помешал бы кнопке выполнить свое действие.

@objc func updateButtons() {
    mapView.clear() // clear the map
    for i in someArray {
        let marker = GMSMarker()
        // configure parameters
        marker.map = mapView
    }
}

Этот метод обновит маркеры вашей карты. [Вероятно] никогда не нужно обновлять карту, даже если вы хотите изменить стили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...