Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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/7/google-maps/4.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_Google Maps_Google Maps Api 3_Geolocation_Distance - Fatal编程技术网

Sql 计算公制区域内的所有纬度和经度

Sql 计算公制区域内的所有纬度和经度,sql,google-maps,google-maps-api-3,geolocation,distance,Sql,Google Maps,Google Maps Api 3,Geolocation,Distance,我知道从lat/long到公制的计算有很多线索。这解决了我问题的第一部分 我的问题的第二个(主要部分)是: 我有谷歌地图作为地图应用 我有一对长的a点 我有一个公制距离,比如说30米 我需要一些要点来执行sql查询 为什么? 我有许多POI记录,可以通过这对lat和long来定位。我不想得到所有的结果(原因:更好的性能) 有没有一种方法可以做到: select * from myTable where lat> .... and lat < ... and long > .

我知道从lat/long到公制的计算有很多线索。这解决了我问题的第一部分

我的问题的第二个(主要部分)是:

  • 我有谷歌地图作为地图应用
  • 我有一对长的a点
  • 我有一个公制距离,比如说30米
  • 我需要一些要点来执行sql查询
为什么?

我有许多POI记录,可以通过这对lat和long来定位。我不想得到所有的结果(原因:更好的性能)

有没有一种方法可以做到:

select * from myTable where lat> .... and lat < ... and long > ... and long < ...?
从lat>所在的myTable中选择*。。。。和拉丁美洲。。。和长>。。。还有长。。。?
这可能吗?如果是,我如何在
中获取这些值


问候

看看这篇文章:

问题是:


以下是一个示例查询,返回供应商lat/lng和lat/lng对数据库之间的距离:

DECLARE
@Latitude float,
@Longitude float

SET @Latitude = 46.51257000000000
SET @Longitude = -84.33660900000000

DECLARE @SampleData TABLE
(
Name varchar(100),
Lat float,
Lng float
)

INSERT INTO @SampleData
(Name, Lat, Lng)
SELECT 'Point1', 46.52450048415351,-84.35223018530274
UNION
SELECT 'Point2', 46.51835838382206,-84.30279170874024
UNION
SELECT 'Point3', 46.522138220045285,-84.2622796237793
UNION
SELECT 'Point4', 46.54056115608927,-84.223140829834

SELECT 
    Name,
    Lat,
    Lng,
    -- using spherical law of cosines, where 6371 is the earth's radius in km. Returns km.
    Distance = ACOS(SIN(RADIANS(@Latitude))*SIN(RADIANS(Lat))+COS(RADIANS(@Latitude))*COS(RADIANS(Lat))*COS(RADIANS(Lng-@Longitude)))*6371  
FROM 
    @SampleData

好的,看起来和我的问题很相似。(但解决办法并没有那么好。)总之。谢谢+1.