Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 07.02.2013
Сообщений: 49

Geography Polygon STIntersects

16.06.2015, 13:18. Показов 3651. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, начал пытаться пользоваться географическими метками в SQL и наткнулся на странную ситуацию:

T-SQL
1
2
3
SELECT t2.Polygon.STAsText(), t1.Point.STAsText()
FROM [GPS_Tbl1] t1
JOIN [GPS_Tbl2] t2 ON t2.Polygon.STIntersects(t1.Point) = 0
И получаю результат:
Строка 1:
POLYGON ((30.65758639382932 64.664369718893084, 30.666276751037572 64.664369718893084, 30.666276751037572 64.6594177834106, 30.65758639382932 64.6594177834106, 30.65758639382932 64.664369718893084))
POINT (30.662292 64.662659)
Строка 2:
POLYGON - Тот же самый
POINT (30.66231 64.66272)

И всё вроде бы работает, но очень смущает описание ф-ции STIntersects, которая при пересечении должна вроде 1 возвращать, а получается работает когда 0, явно что-то не так!?
STContains ведет себя полностью аналогично, подскажите, явно что-то не так делаю
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.06.2015, 13:18
Ответы с готовыми решениями:

долгота широта в SQL! Вычисления расстояния Geography Geography Geography
такой вопрос вроде все напрограммировал в чем ошибка? хоть убей не могу исправить? есть 2 таблицы с множественными точками данная...

Ошибка компиляции undefined reference to `Polygon::Polygon(Point const*, int)'
#include "Polygon.h" #include <iostream> #include <iomanip> using std::cout; using std::endl; int main() ...

Работа с данными типа Geography MS SQL в C#
Доброго времени суток, ребята! Пытаюсь с помощью Entity.Framework сделать запрос на выгрузку данных из таблицы БД MS SQL с помощью...

6
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.06.2015, 15:41
На показанных вами данных, STIntersects возвращает 1, а не 0.
0
1 / 1 / 0
Регистрация: 07.02.2013
Сообщений: 49
17.06.2015, 09:14  [ТС]
Чего то я уже с ума схожу:

T-SQL
1
2
3
DECLARE @pt geography = geography::STPointFromText('POINT (30.662292 64.662659)', 4236)
DECLARE @pn geography = geography::STPolyFromText('POLYGON ((30.65758639382932 64.664369718893084, 30.666276751037572 64.664369718893084, 30.666276751037572 64.6594177834106, 30.65758639382932 64.6594177834106, 30.65758639382932 64.664369718893084))', 4236)
SELECT @pn.STIntersects(@pt)
У меня вот этот запрос выводит 0, а у вас 1 ?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
17.06.2015, 10:21
Как говорится, найдите 10 отличий:
T-SQL
1
2
3
4
5
6
7
8
9
DECLARE @pt geography = geography::STPointFromText('POINT (30.662292 64.662659)', 4236)
DECLARE @pn geography = geography::STPolyFromText('POLYGON ((30.65758639382932 64.664369718893084, 30.666276751037572 64.664369718893084, 30.666276751037572 64.6594177834106, 30.65758639382932 64.6594177834106, 30.65758639382932 64.664369718893084))', 4236)
SELECT @pn.STIntersects(@pt)
go
 
DECLARE @pt geometry = geometry::STPointFromText('POINT (30.662292 64.662659)', 4236)
DECLARE @pn geometry = geometry::STPolyFromText('POLYGON ((30.65758639382932 64.664369718893084, 30.666276751037572 64.664369718893084, 30.666276751037572 64.6594177834106, 30.65758639382932 64.6594177834106, 30.65758639382932 64.664369718893084))', 4236)
SELECT @pn.STIntersects(@pt)
go
0
1 / 1 / 0
Регистрация: 07.02.2013
Сообщений: 49
17.06.2015, 14:54  [ТС]
geometry? Ну это видно, но у меня geography в явном виде, можно хоть немного по-подробнее, почему работает наоборот?

Проверил, есть в описании именно географический вариант:
https://msdn.microsoft.com/ru-... 33962.aspx
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
17.06.2015, 16:42
Все работает одинаково и согласно документации. Разбирайтесь с вашими полигонами, потому что на закладке Spatial results их вообще не видно.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.06.2015, 16:51
Лучший ответ Сообщение было отмечено wrun как решение

Решение

Цитата Сообщение от invm Посмотреть сообщение
Разбирайтесь с вашими полигонами, потому что на закладке Spatial results их вообще не видно.
Цитата Сообщение от wrun Посмотреть сообщение
которая при пересечении должна вроде 1 возвращать, а получается работает когда 0
Направление обхода полигона не в ту сторону. Потому и срабатывает наоборот, и на отоброжении невидно если включено отсечение нелицевых.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2015, 16:51
Помогаю со студенческими работами здесь

Поддержка типа данных geography Visual Studio 2010
Доброго времени суток! Есть БД на MS SQL Server Express 2008 R2. В Visual Studio 2010 добавляю источник данных. Пишет...

Преобразовать тип поля geography в geometry в таблице в схеме PostgreSQL
Добрый день! В схеме базы данных Postgresql выполняю INSERT INTO.. FROM SELECT.. между двумя таблицами. Она из них загружается в схему по...

Ошибка при подключении БД имеющей таблицу с типом поля geography
Доброго времени суток! Создал проект в VS 2017, добавил в него компонент "База данных". В БД создал нужные мне таблицы. Далее...

Polygon
Добрый день у меня возникла проблема. Есть задание "Создать параллелепипед со стороной А и 2А". Единственное что не могу понять. ...

polygon
Здравствуйте! Дайте пожалуйста пример кода 3д любого многоугольника,который можно вращать с помощью клавишь(Up,Down,Left,Right)!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru