【LBS】移动互联网基于LBS地理位置应用开发必备

2024-01-26 22:32

本文主要是介绍【LBS】移动互联网基于LBS地理位置应用开发必备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:【LBS】移动互联网基于LBS地理位置应用开发必备

源代码下载地址:http://www.zuidaima.com/share/1694743146056704.htm

功能:计算两个点(经纬度坐标)之间的距离

使用示例:

double distance = LatLng.distance(113.926496000000000, 22.538393000000000, 114.23, 22.23);

01 package com.haohui.util;
02  
03 /**
04  * 计算两个经纬度之间的距离的工具类
05  *
06  * Feb 13, 2014
07  * @author ZhihaoChen
08  */
09 public class LatLng {
10     private static double lngPerMeter = 1.E-005D;
11  
12     public double getLat(double _curLat, int _radius) {
13         return _radius * lngPerMeter;
14     }
15  
16     public double getLng(int _radius) {
17         return _radius * lngPerMeter;
18     }
19  
20     /**
21      * 计算两个经纬度之间的距离
22      *
23      * @param _lng1
24      * @param _lat1
25      * @param _lng2
26      * @param _lat2
27      * @return
28      */
29     public static double distance(double _lng1, double _lat1, double _lng2,
30             double _lat2) {
31         if ((_lng1 == 0.0D) || (_lat1 == 0.0D) || (_lng2 == 0.0D)
32                 || (_lat2 == 0.0D)) {
33             return 0.0D;
34         }
35         double rad_lat1 = Rad(_lat1);
36         double rad_lat2 = Rad(_lat2);
37         double a = rad_lat1 - rad_lat2;
38         double b = Rad(_lng1) - Rad(_lng2);
39         double s = 2.0D * Math.asin(Math.sqrt(Math
40                 .pow(Math.sin(a / 2.0D), 2.0D)
41                 + Math.cos(rad_lat1)
42                 * Math.cos(rad_lat2)
43                 * Math.pow(Math.sin(b / 2.0D), 2.0D)));
44         s *= 6378137.0D;
45         s = Math.round(s * 10000.0D) / 10000L;
46         return s;
47     }
48  
49     private static double Rad(double _d) {
50         return _d * 3.141592653589793D / 180.0D;
51     }
52      
53 }




这篇关于【LBS】移动互联网基于LBS地理位置应用开发必备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648258

相关文章

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验