ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

ST_DWithin

  • Определение
  • Синтаксис
  • Тип возвращаемого значения
  • Пример

Примечание:

Только для Oracle и PostgreSQL

Определение

ST_DWithin получает на вход две геометрии и возвращает true, если они находятся в пределах заданного расстояния друг от друга, иначе возвращается false. Система пространственной привязки геометрий определяет используемые для расстояния единицы измерения. Поэтому, геометрии для ST_DWithin должны использовать одну и ту же проекцию координат и SRID.

Синтаксис

sde.st_dwithin (st_geometry geometry1, st_geometry geometry2, double_precision distance);

Тип возвращаемого значения

Логические

Пример

В следующем примере создаются две таблицы, в которые помещаются объекты. Затем, функция ST_DWithin используется для определения, находится ли точка из первой таблицы в пределах 100 метров от полигона из второй таблицы.

--Create table to store points.
CREATE TABLE dwithin_test_pt (id INT, geom sde.st_geometry);
--Create table to store polygons.
CREATE TABLE dwithin_test_poly (id INT, geom sde.st_geometry);
--Insert features into each table.
INSERT INTO dwithin_test_pt 
 VALUES
 (
  1,
  sde.st_geometry('point (1 2)', 4326)
 )
;
INSERT INTO dwithin_test_pt
 VALUES
 (
  2,
  sde.st_geometry('point (10.02 20.01)', 4326)
 )
;
INSERT INTO dwithin_test_poly
 VALUES
 (
  1,
  sde.st_geometry('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 4326)
 )
;
INSERT INTO dwithin_test_poly
 VALUES
 (
  2,
  sde.st_geometry('polygon ((101.02 200.01, 111.92 350.64, 250.02 340.15, 190.15 330.94, 101.02 200.01))', 4326)
 )
;
Затем, используйте ST_DWithin для определения, какие объекты в каждой таблице находятся в пределах 100 метров друг от друга, а какие - нет. Функция ST_Distance включена в это выражения для отображения реального расстояния между объектами.

--Determine which features in the point table are within 100 meters of the features in the polygon table. SELECT pt.id, poly.id, sde.st_distance(pt.geom, poly.geom) distance_meters, sde.st_dwithin(pt.geom, poly.geom, 100) DWithin
 FROM dwithin_test_pt pt, dwithin_test_poly poly;

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

id     id     distance_meters        dwithin
1      1      20.1425048094819       t
1      2      221.837689538996       f
2      1      0                      t
2      2      201.69531476958        f

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

ID     ID   DISTANCE_METERS   DWITHIN 1      1         20.1425048         1 1      2          221.83769         0 2      1                  0         1
2      2         201.695315         0

В следующем примере, ST_DWithin используется для поиска объектов, которые находятся на расстоянии 300 метров друг от друга:

--Determine which features in the point table are within 300 meters of the features in the polygon table.
SELECT pt.id, poly.id, sde.st_distance(pt.geom, poly.geom) distance_meters, sde.st_dwithin(pt.geom, poly.geom, 300) DWithin
 FROM dwithin_test_pt pt, dwithin_test_poly poly;

Это второе выражение выборки возвращает следующее при работе с данными из PostgreSQL:

id     id     distance_meters        dwithin
1      1      20.1425048094819       t
1      2      221.837689538996       t
2      1      0                      t
2      2      201.69531476958        t

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

ID     ID   DISTANCE_METERS    DWITHIN 1      1         20.1425048          1 1      2          221.83769          1 2      1                  0          1
2      2         201.695315          1

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация