我有一个超出我所知的专家情况。 我有一个名为geom的多边形表和列,它包含数百万个带有polygon数据类型的多边形坐标。当我发送lat,lang时,我想选择右边的多边形包含这些坐标。我查找了很多答案并没有找到正确的结果。我的db版本是5.6。我希望你的专家能帮助解决这个问题。
以下是我的名为geom,
的专栏的结果'POLYGON((32.832677661456 39.604395901764,32.835512741784 39.604451520825,32.835457628151 39.604632934478,32.83542524568 39.604933725003,32.835590964324 39.605704952638,32.834519250891 39.605843434172,32.834339561944 39.605868865521,32.833763769865 39.605950014069,32.833486350914 39.606015654716,32.833173277993 39.606086197256,32.832114796112 39.606214593239,32.832301872536 39.605240473323,32.832677661456 39.604395901764))',0
当我用这一点搜索时,我需要得到这个多边形32.832677661456 39.604395901764
此致
答案 0 :(得分:2)
返回结果:
select AsText(polygon.geom)
from polygon
where Contains(polygon.geom,
PointFromText('POINT(32.832677661456 39.604395901764)'));
请参阅此fiddle,其中有两个表polygon
(使用您提供的一个值),location
有两个记录,其中一个记录包含您提供的点,以及另一个在给定多边形之外的点。
小提琴SQL发现第一个点在多边形内:
select AsText(polygon.geom), AsText(location.geom)
from polygon, location
where Contains(polygon.geom, location.geom);