`
喧嚣求静
  • 浏览: 573632 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

LBS应用中使用自有数据查找多少米内的相关数据

 
阅读更多

最近在开发中,需要用百度定位当前位置信息查找附近范围的数据,在基于百度地图开发中,提供了基于Poi查找兴趣的的API,但目前数据是来自系统后台的自有数据,所以只能自己实现相关逻辑。

实现逻辑
1.基于百度定位当前经纬度
2. 由当前经纬度与目标数据计算出距离

距离计算公式:抽象为球面两点距离的计算,即已知道球面上两点的经纬度 ,其中$R 为地球半径6378137
通过余弦定理以及弧度计算方法,最终推导出来的算式A为:

Source code    
$s = acos(cos($radLat1)*cos($radLat2)*cos($radLng1-$radLng2)+sin($radLat1)*sin($radLat2))*$R;


目前网上大多使用Google公开的距离计算公司,推导算式B为:

 

Source code    
$s = 2*asin(sqrt(pow(sin(($radLat1-$radLat2)/2),2)+cos($radLat1)*cos($radLat2)*pow(sin(($radLng1-$radLng2)/2),2)))*$R;

在基于mysql数据库中实现的函数

DELIMITER $$

CREATE DEFINER = 'root' @'%' FUNCTION `GETDISTANCE` (
lat1 DOUBLE,
lng1 DOUBLE,
lat2 DOUBLE,
lng2 DOUBLE
) RETURNS DOUBLE READS SQL DATA DETERMINISTIC
BEGIN
DECLARE RAD DOUBLE ;
DECLARE EARTH_RADIUS DOUBLE DEFAULT 6378137 ;
DECLARE radLat1 DOUBLE ;
DECLARE radLat2 DOUBLE ;
DECLARE radLng1 DOUBLE ;
DECLARE radLng2 DOUBLE ;
DECLARE s DOUBLE ;
SET RAD = PI() / 180.0 ;
SET radLat1 = lat1 * RAD ;
SET radLat2 = lat2 * RAD ;
SET radLng1 = lng1 * RAD ;
SET radLng2 = lng2 * RAD ;
SET s = ACOS(
COS(radLat1) * COS(radLat2) * COS(radLng1 - radLng2) + SIN(radLat1) * SIN(radLat2)
) * EARTH_RADIUS ;
SET s = ROUND(s * 10000) / 10000 ;
RETURN s ;
END $$

DELIMITER ;

查询示例

SELECT
parkid,
parkname,
park_addr,
latitude,
longitude,
GETDISTANCE (
latitude,
longitude,
28.139320,
113.042040
) AS distance
FROM
t_park
WHERE 1
HAVING distance < 5000
ORDER BY distance ASC
LIMIT 0, 10

 参考:http://www.wubiao.info/372

分享到:
评论

相关推荐

    百度lbs云实现查找附近的人

    百度LBS云是百度提供的一种基于地理位置的服务平台,它结合了地图数据、定位技术和云计算能力,帮助企业与开发者快速构建地理位置相关的应用。本篇文章将详细解析如何利用百度LBS云实现“查找附近的人”这一功能。 ...

    国外经典LBS应用案例简析

    本文将对国外一些经典的LBS应用案例进行简要分析,从中探讨其对传统社交网络的革新作用、以及这些应用的特点和潜在价值。 首先,LBS技术为社交网络注入了新的活力。社交网络在互联网空间内构建了一种虚拟的社交体系...

    基于LBS的数据挖掘技术在移动电子商务中的应用研究.pdf

    这篇文章主要探讨了基于位置服务(LBS)的数据挖掘技术在移动电子商务中的应用。LBS是通过无线网络,如蜂窝网络、Wi-Fi等来定位和跟踪用户位置的技术,数据挖掘则是利用算法和统计技术从大量数据中提取有价值信息的...

    百du云 lbs 存储检索 Android.rar

    本资源"百du云 lbs 存储检索 Android.rar"提供了一个具体的实现方案,帮助开发者理解如何在Android平台上利用百度云服务进行LBS相关的操作。 1. **百度云LBS服务**: 百度云提供了丰富的地图API和服务,包括定位、...

    LBS云储存DEMO

    对于高级应用,LBS云存储还支持复杂的地理围栏查询,比如查找在特定区域内的所有用户,这对于实现如推送通知、安全监控等功能十分有用。 此外,LBS云存储DEMO还可能包含数据管理和分析的示例。例如,如何统计一定...

    LBS数据隐藏LSBHideProject.zip

    标题 "LBS数据隐藏LSBHideProject.zip" 涉及到的是一个使用Java编程语言实现的地理位置(Location-Based Services, LBS)数据隐藏项目。在这个项目中,开发者利用了位深度隐藏技术(Least Significant Bit, LSB)来...

    2011年LBS广告行业数据报告

    ### 2011年LBS广告行业数据报告解析 #### 一、研究背景与目的 随着3G网络的普及和技术的进步,用户对于位置服务(Location Based Service, LBS)的认知逐渐加深,这也促使LBS移动广告成为移动互联网营销领域的一大...

    全国基站lbs定位库 基站定位 lbs定位数据库

    在本文中,我们将深入探讨基站定位技术、LBS的应用以及如何处理和分析data.csv这样的基站定位数据。 基站定位是LBS服务的基础,它依赖于移动设备与周围基站之间的信号交互。当手机用户通话或使用数据服务时,其设备...

    Android应用源码(精)LBS签到应用源码.zip

    这篇文档将深入解析《Android应用源码(精)LBS签到应用源码》的相关知识点,主要涵盖Android应用程序开发、LBS(Location-Based Services)技术以及如何通过源码学习设计思路。我们将逐一探讨这些主题,帮助你更好地...

    基于LBS应用研究报告

    ### 基于LBS应用研究报告的关键知识点 #### 一、LBS定义及其服务特性 - **LBS(Location-Based Services)**:基于位置的服务,指的是任何与位置相关的服务。它通过移动终端与移动网络协作,以空间数据库为基础,...

    LBS数据隐藏 加密 解密

    LBS 数据隐藏加密解密 本实验报告旨在介绍如何使用 C 语言实现 LSB(Least Significant Bit)算法来隐藏数据在.bmp 文件中,并能够成功解密。LSB 算法是一种常用的信息隐藏技术,通过将秘密信息隐藏在图像文件中,...

    基于云计算的LBS应用研究.pdf

    云计算平台为处理大规模的位置信息数据提供了新的解决路径,文章提出将云计算应用于LBS相关服务,并以高德地图的位置云服务为依托,开发了一个基于Android系统的黄冈旅游手机客户端应用。云计算的利用,不仅可以提高...

    Location-Aware Applications LBS应用开发

    ### Location-Aware Applications (LBS) 应用开发 #### 一、概述 《Location-Aware Applications LBS应用开发》是一本由Richard Ferraro和Murat Aktihanoglu合著的专业书籍,旨在全面介绍位置感知服务(Location-...

    全国基站lbs定位库包含全国移动联通电信全网lbs位置数据,94万条

    全国基站lbs定位库包含全国移动联通电信全网lbs位置数据,94万条

    基于Android平台的校园LBS应用研究.pdf

    随着移动互联网的快速发展,智能手机的普及以及3G、4G网络的广泛应用,位置服务(Location Based Service,LBS)已成为移动应用中的重要组成部分。Android作为一款免费、开放且功能齐全的操作系统,为LBS在智能终端...

    LBS签到应用

    LBS(Location-Based Services,基于位置的服务)签到应用是移动互联网中一种常见的功能,它结合了GPS、Wi-Fi、蓝牙等定位技术,为用户提供实时的位置信息,并允许用户在特定地点进行签到,分享自己的位置或者参与与...

    HTML5在LBS社区中的应用

    HTML5在LBS社区中的应用是一项重要的技术融合,它结合了地理位置服务(LBS,Location-Based Services)与最新的网页标准,为用户提供更加丰富、个性化的交互体验。LBS社区是基于用户位置信息的一种社交网络服务,它...

Global site tag (gtag.js) - Google Analytics