Как отобразить 2 информационных окна одновременно над маркером выбора и маркером сброса на карте Google swift iOS? - PullRequest
0 голосов
/ 06 января 2020

Я работал над приложением ios на основе местоположения. Это приложение имеет требование показывать 2 информационных окна одновременно при рисовании маршрута между 2 точками, такими как на этом рисунке . Я попытался реализовать, написав код ниже, но 2 информационное окно не появилось. Появляется, когда я нажимаю на маркер выбора или маркер падения. Я также исследовал и нашел решение. Решение состояло в том, чтобы создать представление и добавить его в представление значка маркера, но я хотел реализовать с помощью информационного окна. Любая помощь здесь будет высоко ценится. Я исследовал, но не смог найти правильное решение! Спасибо!

В этом коде ниже model.route - это кодированная ломаная линия, используемая для создания маркера перетаскивания. В приведенном ниже коде я даже добавил mapView.selectedMarker код, но ничего не произошло.

let polyLine = Polyline(encodedPolyline: model.route)
    guard let decodeCordinates:[CLLocationCoordinate2D] = polyLine.coordinates else {
      return
    }
    let pickupLat = decodeCordinates.first?.latitude ?? 0
    let pickupLon = decodeCordinates.first?.longitude ?? 0
    let dropLat = decodeCordinates.last?.latitude ?? 0
    let dropLon = decodeCordinates.last?.longitude ?? 0
    // draw pickup marker
    self.pickupMarker = GMSMarker()
    self.pickupMarker.position = CLLocationCoordinate2D(latitude: pickupLat, longitude: pickupLon)
    self.pickupMarker.icon = UIImage(named: "pickupMarker")
    self.pickupMarker.map = self.mapView
    //draw drop marker
    self.dropupMarker = GMSMarker()
    self.dropupMarker.position = CLLocationCoordinate2D(latitude: dropLat, longitude: dropLon)
    self.dropupMarker.icon = UIImage(named: "dropMarker")
    self.dropupMarker.map = self.mapView
    self.mapView.animate(toZoom: 15)

В приведенном ниже делегате PickInfoWindow и DropInfoWindow - это настраиваемое представление.

func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {

                if marker.icon == self.pickupMarker.icon {
                  return PickInfoWindow(frame: CGRect(x: 0, y: 0, width: 100, height: 41))

                } else {
                  return DropInfoWindow(frame: CGRect(x: 0, y: 0, width: 100, height: 41))

                }

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