Я загрузил границу района местного самоуправления штата Новый Южный Уэльс, Австралия, в свою базу данных MS- SQL и попытался выполнить фильтрацию по району Сиднея.
Ниже приведен мой сценарий:
CREATE TABLE [dbo].[nsw_lga_polygon_shp](
[id] [int] IDENTITY(1,1) NOT NULL,
[geom] [geometry] NULL,
[lg_ply_pid] [nvarchar](15) NULL,
[dt_create] [date] NULL,
[dt_retire] [date] NULL,
[lga_pid] [nvarchar](15) NULL,
[nsw_lga_sh] [date] NULL,
[nsw_lga__1] [date] NULL,
[nsw_lga__2] [nvarchar](100) NULL,
[nsw_lga__3] [nvarchar](100) NULL,
[nsw_lga__4] [date] NULL,
[nsw_lga__5] [nvarchar](15) NULL,
CONSTRAINT [PK_nsw_lga_polygon_shp] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
END
GO
select
Geom.STGeometryType() as ShapeType,
geom.STBoundary().ToString() as Boundary,
Geom,
nsw_lga__2
from
[nsw_lga_polygon_shp]
where
nsw_lga__2 like '%SYDNEY%'
Результат:
ShapeType "MultiPolygon"
Однако я не знаю почему когда я пытаюсь использовать функцию фильтра, она мне что-то возвращает.
Ниже приведен мой сценарий
select
Geom,
nsw_lga__2
from
[nsw_lga_polygon_shp]
where
Geom.Filter(geometry::Parse('POLYGON(( 150 -33, 152 -33 , 152 -34 , 150 -34 , 150 -33 ))')) = 1
Я ожидаю увидеть два LGA из моего первого запроса, а также все окружающие LGAs. Может ли кто-нибудь поделиться с вами информацией о том, как решить мою проблему?
Заранее спасибо!
В соответствии с просьбой, я добавил результат с помощью EnvelopeAggregate:
Теперь я заметил, что это из-за другого SRID.