Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Вычисляет значение дроби в виде соотношения длины линии от начала строки до точки на строке, которая ближе всего к заданной точке и целой длине линии на Земле.
Синтаксис
geo_line_locate_point(
lineString, долгота,широта,[ use_spheroid ])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
| lineString | dynamic |
✔️ | Строка в формате GeoJSON. |
| долгота | real |
✔️ | Значение геопространственной координаты долготы в градусах. Допустимое значение находится в диапазоне [-180, +180]. |
| широта | real |
✔️ | Значение широты геопространственной координаты в градусах. Допустимое значение находится в диапазоне [-90, +90]. |
| use_spheroid | bool |
Если false будет использовать сферу в качестве геодимической datum для измерения расстояния. Если true будет измерять расстояние с помощью сфероида. Если не указано, используется значение false по умолчанию. |
Возвраты
Значение дроби линии от 0 до 1 (от 0 до 100%) в качестве соотношения линии от начала до точки на линии, которая ближе всего к заданной точке и целой линии на Земле. Если значение строки или координат недопустимо, запрос создает результат NULL.
Примечание.
- Геопространственные координаты интерпретируются как представленные эталонной системой координат WGS-84 .
- Сегменты линий являются геодесиками в области, если "use_spheroid" = false. Если значение "use_spheroid" = true, сегменты линий будут геодесексическими на сфероиде. Большинство приложений должны измерять расстояние с помощью сферы, которая является более эффективной
- Если границы линии ввода являются прямыми декартовыми линиями, рассмотрите возможность использования geo_line_densify() для преобразования планарных ребер в геодесетики.
- Входные данные не должны содержать более одной строки.
- Если строка входной строки имеет более одной точки в строке на равном расстоянии от входной точки, она не гарантирует, какой из них выбран.
- Чтобы вычислить точку на дроби в строке, используйте geo_line_interpolate_point()
Определение и ограничения LineString
dynamic({"type": "LineString","координаты": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
- Массив координат LineString должен содержать не менее двух записей.
- Координаты [долгота, широта] должны быть допустимыми, где долгота является реальным числом в диапазоне [-180, +180] и широта является реальным числом в диапазоне [-90, +90].
- Длина края должна быть меньше 180 градусов. Выбран самый короткий край между двумя вершинами.
Примеры
В следующем примере вычисляется значение дроби.
let line = dynamic({"type":"LineString","coordinates":[[-73.95796, 40.80042], [-73.97317, 40.764486]]});
print fraction = geo_line_locate_point(line, -73.965, 40.792);
Выходные данные
| дробь |
|---|
| 0.25560135100307552 |
Следующий пример возвращается true из-за недопустимой строки.
print is_bad_line = isnull(geo_line_locate_point(dynamic({"type":"LineString","coordinates":[[1, 1]]}), 1, 1))
Выходные данные
| is_bad_line |
|---|
| правда |