Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询地理坐标内的所有点_Sql_Sql Server_Bing Maps_Latitude Longitude - Fatal编程技术网

Sql 查询地理坐标内的所有点

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

Bing Maps将边界坐标作为方框上的相对点,如下所示:

'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小时。真的吗?