Sql 查询地理坐标内的所有点
Bing Maps将边界坐标作为方框上的相对点,如下所示:Sql 查询地理坐标内的所有点,sql,sql-server,bing-maps,latitude-longitude,Sql,Sql Server,Bing Maps,Latitude Longitude,Bing Maps将边界坐标作为方框上的相对点,如下所示: '34.763402330018245,-76.65003395080568,34.692861148846255,-76.86890220642091' 在我的SQL查询中,我使用该数据以顺时针方向将长方体绘制为多边形,但不获取任何数据。如果我逆时针画的话,我似乎把所有的东西都画出来了 SET @g = geography::STPolyFromText('POLYGON(( 34.763402330018245 -76.65003
'34.763402330018245,-76.65003395080568,34.692861148846255,-76.86890220642091'
在我的SQL查询中,我使用该数据以顺时针方向将长方体绘制为多边形,但不获取任何数据。如果我逆时针画的话,我似乎把所有的东西都画出来了
SET @g = geography::STPolyFromText('POLYGON((
34.763402330018245 -76.65003395080568,
34.692861148846255 -76.65003395080568,
34.692861148846255 -76.86890220642091,
34.763402330018245 -76.86890220642091,
34.763402330018245 -76.65003395080568))', 4326);
在我的Where中,我有@g.STContains(地理::点(p.纬度,p.经度,4326))=1
有人能告诉我我做错了什么吗?根据您对问题的描述,您有一个环定位问题。也就是说,以顺时针还是逆时针方式指定点很重要
尝试更改点的顺序(在您的情况下,我认为可以交换第二个和第四个点),看看这是否解决了您的问题。我发现了问题强> 因为我使用的是地图,所以我使用了geography变量。显然,这样做是错误的。您必须改用几何体变量 我的解决方案现在看起来像:
SET @g = geometry::STPolyFromText('POLYGON((
34.763402330018245 -76.65003395080568,
34.692861148846255 -76.65003395080568,
34.692861148846255 -76.86890220642091,
34.763402330018245 -76.86890220642091,
34.763402330018245 -76.65003395080568))', 4326);
在哪里
@g.STContains(geometry::Point(p.Latitude, p.Longitude,4326 )) = 1
这与Google Maps Javascript API v3有关系吗?它与提供坐标供数据库查询并向地图返回新点的地图有关系(见我下面的评论。我现在实际上在电脑前,看起来你的原始多边形方向正确。我不会说将其更改为
几何体是正确的解决方案,因为这是平面几何体(地球上的哪些点肯定不是).你能给出一个你认为应该在这个多边形中,但SQL说不是的例子吗?尝试将此标记为答案,并得到一条消息,我必须等待24小时。真的吗?