Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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
Javascript 如何获取存储在数据库中且靠近给定纬度和经度的酒店_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何获取存储在数据库中且靠近给定纬度和经度的酒店

Javascript 如何获取存储在数据库中且靠近给定纬度和经度的酒店,javascript,php,ajax,Javascript,Php,Ajax,我有一张桌子,上面有纬度、经度和酒店的位置。我想实现的特性应该显示从数据库中获取的酒店,这些酒店位于由纬度和经度定义的给定点附近 控制器 您需要在SQL查询中应用Haversine距离。这是一个例子: SELECT z.zip, z.primary_city, z.latitude, z.longitude, p.distance_unit * DEGREES(ACOS(COS(RADIANS(p.latpoin

我有一张桌子,上面有纬度、经度和酒店的位置。我想实现的特性应该显示从数据库中获取的酒店,这些酒店位于由纬度和经度定义的给定点附近

控制器


您需要在SQL查询中应用Haversine距离。这是一个例子:

 SELECT z.zip,
        z.primary_city,
        z.latitude, z.longitude,
        p.distance_unit
                 * DEGREES(ACOS(COS(RADIANS(p.latpoint))
                 * COS(RADIANS(z.latitude))
                 * COS(RADIANS(p.longpoint) - RADIANS(z.longitude))
                 + SIN(RADIANS(p.latpoint))
                 * SIN(RADIANS(z.latitude)))) AS distance_in_km
  FROM zip AS z
  JOIN (   /* these are the query parameters */
        SELECT  42.81  AS latpoint,  -70.81 AS longpoint,
                50.0 AS radius,      111.045 AS distance_unit
    ) AS p ON 1=1
  WHERE z.latitude
     BETWEEN p.latpoint  - (p.radius / p.distance_unit)
         AND p.latpoint  + (p.radius / p.distance_unit)
    AND z.longitude
     BETWEEN p.longpoint - (p.radius / (p.distance_unit * COS(RADIANS(p.latpoint))))
         AND p.longpoint + (p.radius / (p.distance_unit * COS(RADIANS(p.latpoint))))
  ORDER BY distance_in_km
LIMIT 15

摘自。关于Code Igniter,您也可以在这里应用它,请参见。

您的问题是什么?您的问题是什么?您使用的框架是什么?我想他使用的是基于@YazanWYusuf格式的codeigniter…但我猜他的控制器模型是正确的,他想为标记创建客户端ajax事件函数。。当标记被固定时,它应该发布lat和long,并返回响应并更新mapyes,我正在使用codeigniter。我的问题是,我应该使用什么查询来从基于经纬度的数据库中获取数据。例如:如果谷歌地图上的标记指向纬度=15.3068003,经度=78.456722300000002,那么它应该获取所有经纬度接近所指纬度和经度的数据。是的,我使用了ajax函数对于标记,它工作正常。但问题在于查询。无论标记在谷歌地图上指向何处,它都会显示计数0,即使数据库中保存了许多条目。请建议我一个适当的查询,这将是有益的。
 SELECT z.zip,
        z.primary_city,
        z.latitude, z.longitude,
        p.distance_unit
                 * DEGREES(ACOS(COS(RADIANS(p.latpoint))
                 * COS(RADIANS(z.latitude))
                 * COS(RADIANS(p.longpoint) - RADIANS(z.longitude))
                 + SIN(RADIANS(p.latpoint))
                 * SIN(RADIANS(z.latitude)))) AS distance_in_km
  FROM zip AS z
  JOIN (   /* these are the query parameters */
        SELECT  42.81  AS latpoint,  -70.81 AS longpoint,
                50.0 AS radius,      111.045 AS distance_unit
    ) AS p ON 1=1
  WHERE z.latitude
     BETWEEN p.latpoint  - (p.radius / p.distance_unit)
         AND p.latpoint  + (p.radius / p.distance_unit)
    AND z.longitude
     BETWEEN p.longpoint - (p.radius / (p.distance_unit * COS(RADIANS(p.latpoint))))
         AND p.longpoint + (p.radius / (p.distance_unit * COS(RADIANS(p.latpoint))))
  ORDER BY distance_in_km
LIMIT 15