Как мне показать полилинию, которая соединяет только 2 точки? - PullRequest
0 голосов
/ 01 декабря 2018

Я использую API Карт Google для iOS, чтобы показать карту.Я хочу добавить линию на определенной долготе, чтобы пользователи могли знать, где эта долгота.

Вот что я пробовал:

let path = GMSMutablePath()
path.add(CLLocationCoordinate2D(latitude: -90, longitude: -122))
path.add(CLLocationCoordinate2D(latitude: 90, longitude: -122))
polyline = GMSPolyline(path: path)
polyline.geodesic = true
polyline.strokeColor = .red
polyline.strokeWidth = 20 // I have set this to a big number to guarantee that my poor eyesight can see the line
polyline.map = mapView

Я не могу видеть линию нигде!

В качестве контрольного эксперимента я скопировал код, нарисовавший прямоугольник из урока , и вставил его сразу после кода выше:

let rect = GMSMutablePath()
rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))

// Create the polygon, and assign it to the map.
let polygon = GMSPolygon(path: rect)
polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.2);
polygon.strokeColor = .black
polygon.strokeWidth = 2
polygon.map = mapView

И он показывает прямоугольник:

enter image description here

Поскольку мой код, который рисует линию, находится непосредственно над кодом, который рисует прямоугольник, мой код также должен был быть выполнен.Он должен был провести линию, касающуюся прямоугольника, простирающегося от северного полюса до южного полюса.Но почему нет такой линии?

1 Ответ

0 голосов
/ 01 декабря 2018

Проблема в том, что ваши две точки - это не просто две произвольные точки, и между ними нет только одной самой короткой линии.

Точки (90, X) и (-90, X) являютсясеверный и южный полюсы, независимо от значения X, и их соединяют бесконечные линии.Я бы предложил добавить точку на экваторе (0, X) между двумя другими точками.

Я добавил точку на экваторе между северным полюсом и южным полюсом, и теперь он только нарисоваллиния к экватору.

Я не могу этого объяснить.Похоже, ошибка.Попробуйте значения возле полюсов, такие как 89 и -89 или 89.999 и -89.999.

...