`
sunnylocus
  • 浏览: 875699 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

用Java解析GPS经纬度

    博客分类:
  • Java
阅读更多

 

  现在正开发的定位模块用到的定位设置是塞格车圣导航设备,发送指令返回的经纬度需要进行转换,再到GIS系统获取地理信息描述。以后需要要经常用到这方面的知识,随笔写下。

 

将十进制数值转经纬度

 公式:
    Decimal Degrees = Degrees + minutes/60 + seconds/3600
  例:57°55'56.6" =57+55/60+56.6/3600=57.9323888888888
 
如把经纬度  (longitude,latitude) (205.395583333332,57.9323888888888)转换据成坐标(Degrees,minutes,seconds)(205°23'44.1",57°55'56.6")。
步骤如下:

1、 直接读取"度":205

2、(205.395583333332-205)*60=23.734999999920 得到"分":23

3、(23.734999999920-23)*60=44.099999995200 得到"秒":44.1

 

发送定位指令,终端返回的经纬度信息如下:

(ONE072457A3641.2220N11706.2569E000.000240309C0000400)

按照协议解析

 

获得信息体的经纬度是主要,其它不要管,直接用String类的substring()方法截掉,获取的经纬度

3641.2220N11706.2569E

package com.tdt.test;

import com.tdt.api.gis.LocationInfo;

/**
 * <p>Title:坐标转换 </p>
 * 
 * <p>Description:</p>
 * 
 * <p>Copyright: Copyright (c) 2009</p>
 * 
 * <p>Company:</p>
 * 
 * @author sunnylocus
 * @version 1.0 [2009-03-24]
 * 
 */
public class LonlatConversion {

	/**
	 * 
	 * @param dms 坐标
	 * @param type 坐标类型
	 * @return String 解析后的经纬度
	 */
	public static String xypase(String dms, String type) {
		if (dms == null || dms.equals("")) {
			return "0.0";
		}
		double result = 0.0D;
		String temp = "";
		
		if (type.equals("E")) {//经度
			String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度
											//经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 
			String e2 = dms.substring(3, dms.length());//需要运算的小数

			result = Double.parseDouble(e1);
			result += (Double.parseDouble(e2) / 60.0D);
			temp = String.valueOf(result);
			if (temp.length() > 9) {
				temp = e1 + temp.substring(temp.indexOf("."), 9);
			}
		} else if (type.equals("N")) {		//纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度
			String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度
			String n2 = dms.substring(2, dms.length());

			result = Double.parseDouble(n1);
			result += Double.parseDouble(n2) / 60.0D;
			temp = String.valueOf(result);
			if (temp.length() > 8) {
				temp = n1 + temp.substring(temp.indexOf("."), 8);
			}
		}
		return temp;
	}
	public static void main(String[] args) {
		String info="(ONE072457A3641.2220N11706.2569E000.000240309C0000400)";		 
		info=info.substring(11,info.length()-13);
		//纬度
		String N = info.substring(0, info.indexOf("N"));
		//经度
		String E = info.substring(info.indexOf("N")+1,info.indexOf("E"));
		//请求gis,获取地理信息描述
		double x = Double.parseDouble(CoordConversion.xypase(E,"E"));
		double y = Double.parseDouble(CoordConversion.xypase(N,"N"));
		String result =LocationInfo.getLocationInfo("test", x, y); //System.out.println("径度:"+x+","+"纬度:"+y);
		System.out.println(result);
	}
}

运行结果

在济南市,位于轻骑路和八涧堡路附近;在环保科技园国际商务中心和济南市区贤文庄附近。

 

0
1
分享到:
评论
10 楼 vvczx 2015-11-03  
楼主好人,求那个jar。谢谢啦、2313936326@qq.com
9 楼 liu1245621121 2015-09-08  
楼主 好人 求包 1245621121@qq.com
8 楼 ningyuehuai 2015-07-01  
楼主能把jar发我一份吗,邮箱:nyhitany@163.com   谢谢!
7 楼 975764577 2013-11-18  
楼主,能把包发下给我吗? www.975764577@qq.com
6 楼 kele558 2013-11-06  
能提供com.tdt.api.gis jar下载吗?
5 楼 liuliwy 2012-07-24  
求那个jar包呀 楼主
邮箱是466210126@qq.com
4 楼 sunnylocus 2011-10-11  
tangfei 写道
com.tdt.api.gis.LocationInfo; 
这个类在哪儿呢?

这个方法封装成了一个jar包,里面太复杂了,没有贴上来。
3 楼 tangfei 2011-10-11  
com.tdt.api.gis.LocationInfo; 
这个类在哪儿呢?
2 楼 sunnylocus 2010-09-17  
cyp5913 写道

兄弟咋哭了呢?
1 楼 cyp5913 2010-09-16  

相关推荐

    java提取照片经纬度代码

    本篇文章详细介绍了如何使用Java编程语言从JPEG图像中提取经纬度信息的方法。通过对关键类与方法的介绍,以及对示例代码的深入分析,读者不仅可以理解这一过程的基本原理,还能了解到如何进一步优化和完善代码。此外...

    模拟gps经纬度数据(带全国).rar

    在软件开发、地理信息系统(GIS)、移动应用等领域,模拟GPS经纬度数据有着广泛的应用,例如进行功能测试、性能评估或数据分析。以下是对"模拟gps经纬度数据(带全国).rar"这个压缩包文件内容的详细解释: 1. **...

    java gps信号接收与解析

    "java gps信号接收与解析" 本文将java语言实现GPS信号的接收与解析,通过java程序来提取GPS定位信息,并对其进行处理。GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分...

    android获取GPS经纬度,并根据经纬度获取准确地址( 纯原生)

    总结来说,获取Android设备的GPS经纬度并转换为地址,需要利用Location服务获取定位信息,然后通过Geocoding API或`Geocoder`将坐标解析为可读的地址。在实际应用中,还需要考虑位置权限的获取、GPS状态的检查以及...

    java计算两个经纬度之间的距离

    在处理GPS数据时,通常会遇到精度问题,如使用GPS坐标时,会包含小数部分,这些小数表示微秒级别的时间,需要正确解析和处理。此外,有时还需要考虑到时区和夏令时的影响。 总的来说,Java计算两个经纬度之间的距离...

    根据IP或经纬度查询城市-离线版.zip

    而经纬度定位则是基于GPS或其他卫星定位系统,直接获取设备的精确地理坐标,然后通过逆地理编码找到对应的行政区域信息。 在这个压缩包中,关键文件“address_api”可能是一个Java API库,用于处理这两种定位方式。...

    Java读取照片地址、GPS信息、定位照片精确位置完整项目【附测试照片一张】.zip

    这个项目专注于使用Java来读取照片的地址、GPS信息以及其他相关数据,从而实现对照片的精确定位。以下是对这个项目的详细解读: 首先,我们要理解什么是照片的元数据。元数据是关于数据的数据,对于照片而言,它...

    用Java实现GPS全球定位系统定位数据的提取

    GPS定位信息的处理通常涉及以下几个关键步骤:接收GPS信号、解析GPS数据以及处理这些数据以获取有用信息。下面我们将逐一探讨这些步骤的实现方法。 ##### 1. 打开接收端口 打开接收端口是GPS定位信息接收的第一步...

    使用GPS获取经纬度

    这篇博文“使用GPS获取经纬度”显然探讨了如何在编程中利用GPS功能来实现这一目标。通常,这涉及到使用特定的API或库,尤其是在移动开发中,如Android或iOS平台。 在Android系统中,GPS的使用主要通过...

    Gps协议解析,GPS格式

    "GPS 协议解析和 GPS 格式" GPS 协议解析是指从 GPS 卫星定位接收器接收到的 NMEA 协议数据中提取有用的定位信息。GPS 卫星定位接收器会源源不断地将接收并计算出的 GPS 导航定位信息通过串口传送到计算机中。这些...

    GPS定位得到经纬度

    如果这是一个开发项目,那么开发者可能需要理解GPS信号处理的算法,熟悉如何在特定的编程语言(如Java、Python或C++)中实现GPS定位功能,并考虑如何优化定位性能,比如减少延迟、提高精度或优化电池使用。...

    GPS.rar_GPS数据_Java中GPS定位_gps ja_gps定位_java写gps定位

    综上所述,这个Java项目为GPS定位提供了一个解决方案,可能包括解析GPS数据、计算位置以及可能的路径规划功能。开发者可能需要了解Java编程基础,理解GPS工作原理,以及对路径规划算法有一定的认知,才能理解和利用...

    根据经纬度位置将其按照行政区域分类代码

    1. 获取经纬度:这可能来自用户的输入、GPS设备或其他传感器。 2. 调用百度地图API:将经纬度作为参数,发送请求以获取该位置的详细信息,包括行政区域代码。 3. 解析返回结果:API会返回一个JSON对象,包含位置的...

    卫通星GPS定位器GT06协议socket通讯JAVA Spring Boot对接

    本文将详细讨论如何使用卫通星GPS定位器GT06的通信协议,通过Socket进行数据传输,并结合Java与Spring Boot框架实现后台服务的对接。 卫通星GPS定位器GT06是一款基于GSM网络的车载定位设备,它能够实时发送位置、...

    安卓调用GPS获取经纬度源码

    本篇文章将通过一个具体的示例代码来详细解析如何在Android系统中实现GPS定位功能,从而获取用户的经纬度坐标。 #### 二、关键知识点 ##### 1. 权限声明 在使用Android系统的GPS功能之前,首先需要在应用的`...

    用java做的gps界面 可以显示地图

    这个项目的核心在于利用Java的图形用户界面(GUI)库,如Swing或JavaFX,创建交互式的地图展示,并结合GPS数据处理库来获取和解析GPS设备发送的数据。以下是一些关于如何实现这个功能的关键知识点: 1. **Java GUI...

    Java实现GPS全球定位系统定位数据的提取

    本文将重点探讨如何利用Java编程语言从GPS接收机中获取定位信息,并对其进行解析。 #### GPS定位信息的处理过程 GPS定位信息的接收与处理通常涉及以下几个步骤: 1. **打开接收端口**:这一阶段主要负责设置通信...

    googleMap根据经纬度获取地理位置

    1. Google Maps Geocoding API的使用,包括发起请求和解析响应。 2. JavaScript与Google Maps API的交互,主要是通过JavaScript对象与API进行数据交换。 3. Java后端对JSON数据的处理,通过Gson库将JSON转换为Java ...

    通过串口查看GPS

    标题中的“通过串口查看GPS”意味着我们要讨论的是如何利用串行通信接口(Serial Port)来获取全球定位系统(GPS)的数据。...对于想学习如何使用Java处理GPS数据的开发者来说,这是一个有价值的学习资源。

    基于stm32单片机的gps定位系统(app端源码)

    在本项目中,STM32作为核心处理器,负责收集GPS接收器提供的经纬度数据,并通过蓝牙模块将这些信息传输到手机端。 GPS(全球定位系统)是一种全球性的卫星导航系统,通过接收多颗卫星的信号,可以计算出设备的精确...

Global site tag (gtag.js) - Google Analytics