GMSGeometryUtils

Классы

структура ГМСМаппоинт
Точка на карте. Более...

Определения типов

структура typedef GMSMapPoint ГМСМаппоинт
Точка на карте.

Функции

ГМСМаппоинт GMSProject (координата CLLocationCoordinate2D)
Проекты coordinate к карте.
CLLocationCoordinate2D GMSUnproject (точка GMSMapPoint )
Отменяет проецирование point с карты.
ГМСМаппоинт GMSMapPointInterpolate ( GMSMapPoint a, GMSMapPoint b, двойной t)
Возвращает линейно интерполированную точку на отрезке [a, b] в дробной части t от a .
двойной GMSMapPointDistance ( GMSMapPoint a, GMSMapPoint b)
Возвращает длину сегмента [a, b] в проецируемом пространстве.
БООЛ GMSGeometryContainsLocation (точка CLocationCoordinate2D, GMSPath *path, геодезическая BOOL)
Возвращает, находится ли point внутри пути.
БООЛ GMSGeometryIsLocationOnPathTolerance (точка CLLocationCoordinate2D, GMSPath *path, BOOL geodesic, допуск CLLocationDistance)
Возвращает информацию о том, находится ли point на path или рядом с ним в пределах указанного tolerance в метрах.
БООЛ GMSGeometryIsLocationOnPath (точка CLocationCoordinate2D, GMSPath *path, геодезическая BOOL)
То же, что GMSGeometryIsLocationOnPath(точка, путь, геодезическая, допуск), с допуском по умолчанию 0,1 метра.
CLLationDistance GMSGeometryDistance (CLLocationCoordinate2D от, CLLocationCoordinate2D до)
Возвращает расстояние по большому кругу между двумя координатами на Земле в метрах.
CLLationDistance GMSGeometryLength ( GMSPath *путь)
Возвращает длину path по большому кругу на Земле в метрах.
двойной GMSGeometryArea ( GMSPath *путь)
Возвращает площадь геодезического многоугольника, определенного path на Земле.
двойной GMSGeometrySignedArea ( GMSPath *путь)
Возвращает подписанную площадь геодезического многоугольника, определенного path на Земле.
CLLationDirection GMSGeometryHeading (CLLocationCoordinate2D from, CLLocationCoordinate2D to)
Возвращает начальный курс (градусы по часовой стрелке от севера) from кратчайшего пути до to .
CLLocationCoordinate2D GMSGeometryOffset (CLLocationCoordinate2D from, расстояние CLLocationDistance, заголовок CLLocationDirection)
Возвращает координату пункта назначения, если начать from с начального heading и пройти distance в метрах по дуге большого круга на Земле.
CLLocationCoordinate2D GMSGeometryInterpolate (CLLocationCoordinate2D от, CLLocationCoordinate2D до, двойная дробь)
Возвращает координату, лежащую на заданной fraction пути между координатами « from и to на кратчайшем пути между ними.
NSArray< GMSStyleSpan * > * GMSStyleSpans ( GMSPath *path, NSArray< GMSStrokeStyle * > *styles, NSArray< NSNumber * > *lengths, GMSLengthKind lengthKind)
Возвращает NSArray GMSStyleSpan , созданный путем многократного применения информации о стиле и длине из styles и lengths по path .
NSArray< GMSStyleSpan * > * GMSStyleSpansOffset ( GMSPath *path, NSArray< GMSStrokeStyle * > *styles, NSArray< NSNumber * > *lengths, GMSLengthKind lengthKind, double lengthOffset)
Аналогично GMSStyleSpans(path,styles,lengths,lengthKind), но дополнительно принимает начальное смещение длины, которое будет пропущено относительно массива lengths .

Документация по определению типа

typedef структура GMSMapPoint GMSMapPoint

Точка на карте.

Может представлять координату проекции.

x находится в [-1, 1]. Направление оси нормальное: y растет к северу, x растет к востоку. (0, 0) — центр карты.

См. GMSProject() и GMSUnproject() .


Функциональная документация

ГМСМаппоинт _ ( CLLocationCoordinate2D координировать )

Проекты coordinate к карте.

coordinate должна быть допустимой.

CLLocationCoordinate2D GMSUnproject ( ГМСМаппоинт точка )

Отменяет проецирование point с карты.

point.x должен находиться в [-1, 1].

Возвращает линейно интерполированную точку на отрезке [a, b] в дробной части t от a .

t ==0 соответствует a , t ==1 соответствует b .

Интерполяция происходит по короткому пути между точками, потенциально пересекающими линию даты. Например, интерполяция из Сан-Франциско в Токио пройдет к северу от Гавайев и пересечет линию даты.

Возвращает длину сегмента [a, b] в проецируемом пространстве.

Длина вычисляется по короткому пути между точками, потенциально пересекающими линию даты. Например, расстояние между точками, соответствующими Сан-Франциско и Токио, измеряет отрезок, который проходит к северу от Гавайских островов и пересекает линию даты.

BOOL GMSGeometryContainsLocation ( CLLocationCoordinate2D точка ,
ГМСПуть * путь ,
БООЛ геодезический
)

Возвращает, находится ли point внутри пути.

Путь всегда считается замкнутым, независимо от того, равна последняя точка первой или нет.

«Внутри» определяется как отсутствие Южного полюса — Южный полюс всегда находится снаружи.

path описывает сегменты большого круга, если geodesic имеет значение ДА, и прямые (локсодромные) сегменты в противном случае.

Если point точно равна одной из вершин, результат будет ДА. Точка, не равная вершине, находится по одну или другую сторону любого сегмента пути — она никогда не может находиться «точно на границе».

См. GMSGeometryIsLocationOnPath() для проверки границы с допуском.

BOOL GMSGeometryIsLocationOnPathTolerance ( CLLocationCoordinate2D точка ,
ГМСПуть * путь ,
БООЛ геодезический ,
CLLationDistance толерантность
)

Возвращает информацию о том, находится ли point на path или рядом с ним в пределах указанного tolerance в метрах.

path состоит из сегментов большого круга, если geodesic параметр ДА, и из прямых (локсодромных) сегментов, если geodesic параметр НЕТ.

См. также GMSGeometryIsLocationOnPath(точка, путь, геодезическая).

Допуск в метрах указан относительно сферического радиуса Земли. Если вам нужно работать со сферой другого радиуса, вы можете вычислить эквивалентный допуск на основе желаемого допуска на сфере радиуса R: допуск = допускR * (RadiusEarth / R), с RadiusEarth==6371009.

BOOL GMSGeometryIsLocationOnPath ( CLLocationCoordinate2D точка ,
ГМСПуть * путь ,
БООЛ геодезический
)

То же, что GMSGeometryIsLocationOnPath(точка, путь, геодезическая, допуск), с допуском по умолчанию 0,1 метра.

CLLocationDistance GMSGeometryDistance ( CLLocationCoordinate2D от ,
CLLocationCoordinate2D к
)

Возвращает расстояние по большому кругу между двумя координатами на Земле в метрах.

Это кратчайшее расстояние между двумя координатами на сфере.

Обе координаты должны быть действительными.

CLLocationDistance GMSGeometryLength ( ГМСПуть * путь )

Возвращает длину path по большому кругу на Земле в метрах.

Это сумма GMSGeometryDistance() по сегментам пути.

Все координаты пути должны быть действительными.

двойной GMSGeometryArea ( ГМСПуть * путь )

Возвращает площадь геодезического многоугольника, определенного path на Земле.

«Внутренняя» часть многоугольника определяется как не содержащая Южного полюса.

Если path не закрыт, он, тем не менее, неявно рассматривается как закрытый путь, и результат тот же.

Все координаты пути должны быть действительными.

Многоугольник должен быть простым (не перекрывающимся) и может быть вогнутым.

Если какой-либо сегмент пути представляет собой пару противоположных точек, результат не определен, поскольку две противоположные точки не образуют уникальный сегмент большого круга на сфере.

двойной GMSGeometrySignedArea ( ГМСПуть * путь )

Возвращает подписанную площадь геодезического многоугольника, определенного path на Земле.

Результат имеет то же абсолютное значение, что и GMSGeometryArea() ; он положителен, если точки пути расположены против часовой стрелки, и отрицателен в противном случае.

Применяются те же ограничения, что и для GMSGeometryArea() .

CLLationDirection GMSGeometryHeading ( CLLocationCoordinate2D от ,
CLLocationCoordinate2D к
)

Возвращает начальный курс (градусы по часовой стрелке от севера) from кратчайшего пути до to .

Возвращаемое значение находится в диапазоне [0, 360).

Возвращает 0, если две координаты одинаковы.

Обе координаты должны быть действительными.

Чтобы to окончательный заголовок, можно использовать (GMSGeometryHeading(to, from ) + 180) по модулю 360.

CLLocationCoordinate2D GMSGeometryOffset ( CLLocationCoordinate2D от ,
CLLationDistance расстояние ,
CLLationDirection заголовок
)

Возвращает координату пункта назначения, если начать from с начального heading и пройти distance в метрах по дуге большого круга на Земле.

Результирующая долгота находится в диапазоне [-180, 180).

Обе координаты должны быть действительными.

CLLocationCoordinate2D GMSGeometryInterpolate ( CLLocationCoordinate2D от ,
CLLocationCoordinate2D к ,
двойной доля
)

Возвращает координату, лежащую на заданной fraction пути между координатами « from и to на кратчайшем пути между ними.

Результирующая долгота находится в диапазоне [-180, 180).

NSArray< GMSStyleSpan *>* GMSStyleSpans ( ГМСПуть * путь ,
NSArray< GMSStrokeStyle * > * стили ,
NSArray< NSNumber * > * длины ,
GMSLengthKind длинаВид
)

Возвращает NSArray GMSStyleSpan , созданный путем многократного применения информации о стиле и длине из styles и lengths по path .

path путь, по которому вычисляются выходные диапазоны. styles NSArray GMSStrokeStyle . Обертывания в случае употребления. Не может быть пустым. lengths NSArray NSNumber; каждая запись дает длину соответствующего стиля из styles . Обертывания в случае употребления. Не может быть пустым. lengthKind интерпретация значений lengths (геодезическая, параллельная или проекция).

Пример: полилиния с чередующимися черными и белыми участками:

 GMSMutablePath *path;
 NSArray *styles = @[[GMSStrokeStyle solidColor:[UIColor whiteColor]],
                     [GMSStrokeStyle solidColor:[UIColor blackColor]]];
 NSArray *lengths = @[@100000, @50000];
 polyline.path = path;
 polyline.spans = GMSStyleSpans(path, styles, lengths, kGMSLengthRhumb);
 
NSArray< GMSStyleSpan *>* GMSStyleSpansOffset ( ГМСПуть * путь ,
NSArray< GMSStrokeStyle * > * стили ,
NSArray< NSNumber * > * длины ,
GMSLengthKind длинаВид ,
двойной длинаСмещение
)

Аналогично GMSStyleSpans(path,styles,lengths,lengthKind), но дополнительно принимает начальное смещение длины, которое будет пропущено относительно массива lengths .

lengthOffset длина (например, в метрах), которую следует изначально пропустить из lengths .