Как добавить пользовательские маркеры с сервера на карту Google? стриж - PullRequest
0 голосов
/ 30 октября 2019

Я работаю над приложением, которое показывает положение пользователей и загружает близлежащие места. Места получаются с сервера по координатам. Итак, мой вопрос, как отобразить их как пользовательские маркеры с правильным размером? Я загружаю координаты в массив и затем показываю их на карте. Вот как далеко я продвинулся: enter image description here

Маркер становится больше при прокрутке.

Вот где я установил маркер:

 let coordinates = spotCoordinates
let image = UIImage(named: "Dog")!.withRenderingMode(.alwaysTemplate)
for coord in coordinates {
   let position = CLLocationCoordinate2D(latitude: coord.latitude,longitude:coord.longitude)
    let marker = GMSMarker(position: position)
    marker.map = spotsParentView.mapView
    marker.icon = image
}

1 Ответ

1 голос
/ 30 октября 2019

Вы должны добавить значки маркеров и позиции в массиве следующим образом:

 let marker = GMSMarkerInfo()
  marker.icon = UIImage(named: "locationPinNeon")
   self.markerArray.append(marker)                

Затем, чтобы отобразить маркеры в местах, которые вы получили от сервера на карте, вы должны реализовать следующий код:

 let camera: GMSCameraPosition = GMSCameraPosition.camera(withLatitude: Double(self.lat)!, longitude: Double(self.long)!, zoom: 5.0)
                self.mapView.camera = camera

                delay(seconds: 1) { () -> () in
                    //fit map to markers
                    var bounds = GMSCoordinateBounds()
                    for marker in self.markerArray {
                        bounds = bounds.includingCoordinate(marker.position)
                    }
                    let update = GMSCameraUpdate.fit(bounds, withPadding: 100.0)
                    self.mapView.animate(with: update)
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...