SQL 服务器 - 按几何数据查询
SQL Server - Query by Geometry Data
假设我在 table addresses
中有以下数据:
physicalState physicalPostalCode geometry
------------------------------------------------------------------------------
PA 15340 0xE6100000010CAC1C5A643B1354C02D431CEBE2264440
OK 74576 0xE6100000010C7DD0B359F50158C079E9263108544140
WV 26033 0xE6100000010CE8D9ACFA5C2554C0273108AC1CEA4340
WV 26033 0xE6100000010C36AB3E575B2554C0C3D32B6519EA4340
我想
select *
from addresses
where geometry = GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326)
发现很难弄清楚...
尝试使用方法 [STContains]
像这样的条件:
geometry.STContains(GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326))
好的!想通了这一点……值得注意的一件事是,x/y 坐标被翻转了。这有助于挫败事情。愚蠢的我。
无论哪种方式,这都是为了能够通过特定点查询数据库:
select * from addresses
WHERE geometry.ToString() = 'POINT (-80.3005 40.3038)'
此外,感谢@Adam Silenko,他的解决方案也可以这样工作:
select *
from addresses
where geometry.STContains(GEOMETRY::STPointFromText('POINT (-80.3005 40.3038)', 4326)) = 1
谢谢!
假设我在 table addresses
中有以下数据:
physicalState physicalPostalCode geometry
------------------------------------------------------------------------------
PA 15340 0xE6100000010CAC1C5A643B1354C02D431CEBE2264440
OK 74576 0xE6100000010C7DD0B359F50158C079E9263108544140
WV 26033 0xE6100000010CE8D9ACFA5C2554C0273108AC1CEA4340
WV 26033 0xE6100000010C36AB3E575B2554C0C3D32B6519EA4340
我想
select *
from addresses
where geometry = GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326)
发现很难弄清楚...
尝试使用方法 [STContains] 像这样的条件:
geometry.STContains(GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326))
好的!想通了这一点……值得注意的一件事是,x/y 坐标被翻转了。这有助于挫败事情。愚蠢的我。
无论哪种方式,这都是为了能够通过特定点查询数据库:
select * from addresses
WHERE geometry.ToString() = 'POINT (-80.3005 40.3038)'
此外,感谢@Adam Silenko,他的解决方案也可以这样工作:
select *
from addresses
where geometry.STContains(GEOMETRY::STPointFromText('POINT (-80.3005 40.3038)', 4326)) = 1
谢谢!