现在正开发的定位模块用到的定位设置是塞格车圣导航设备,发送指令返回的经纬度需要进行转换,再到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);
}
}
运行结果
在济南市,位于轻骑路和八涧堡路附近;在环保科技园国际商务中心和济南市区贤文庄附近。
分享到:
相关推荐
本篇文章详细介绍了如何使用Java编程语言从JPEG图像中提取经纬度信息的方法。通过对关键类与方法的介绍,以及对示例代码的深入分析,读者不仅可以理解这一过程的基本原理,还能了解到如何进一步优化和完善代码。此外...
在软件开发、地理信息系统(GIS)、移动应用等领域,模拟GPS经纬度数据有着广泛的应用,例如进行功能测试、性能评估或数据分析。以下是对"模拟gps经纬度数据(带全国).rar"这个压缩包文件内容的详细解释: 1. **...
"java gps信号接收与解析" 本文将java语言实现GPS信号的接收与解析,通过java程序来提取GPS定位信息,并对其进行处理。GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分...
总结来说,获取Android设备的GPS经纬度并转换为地址,需要利用Location服务获取定位信息,然后通过Geocoding API或`Geocoder`将坐标解析为可读的地址。在实际应用中,还需要考虑位置权限的获取、GPS状态的检查以及...
在处理GPS数据时,通常会遇到精度问题,如使用GPS坐标时,会包含小数部分,这些小数表示微秒级别的时间,需要正确解析和处理。此外,有时还需要考虑到时区和夏令时的影响。 总的来说,Java计算两个经纬度之间的距离...
而经纬度定位则是基于GPS或其他卫星定位系统,直接获取设备的精确地理坐标,然后通过逆地理编码找到对应的行政区域信息。 在这个压缩包中,关键文件“address_api”可能是一个Java API库,用于处理这两种定位方式。...
这个项目专注于使用Java来读取照片的地址、GPS信息以及其他相关数据,从而实现对照片的精确定位。以下是对这个项目的详细解读: 首先,我们要理解什么是照片的元数据。元数据是关于数据的数据,对于照片而言,它...
GPS定位信息的处理通常涉及以下几个关键步骤:接收GPS信号、解析GPS数据以及处理这些数据以获取有用信息。下面我们将逐一探讨这些步骤的实现方法。 ##### 1. 打开接收端口 打开接收端口是GPS定位信息接收的第一步...
这篇博文“使用GPS获取经纬度”显然探讨了如何在编程中利用GPS功能来实现这一目标。通常,这涉及到使用特定的API或库,尤其是在移动开发中,如Android或iOS平台。 在Android系统中,GPS的使用主要通过...
"GPS 协议解析和 GPS 格式" GPS 协议解析是指从 GPS 卫星定位接收器接收到的 NMEA 协议数据中提取有用的定位信息。GPS 卫星定位接收器会源源不断地将接收并计算出的 GPS 导航定位信息通过串口传送到计算机中。这些...
如果这是一个开发项目,那么开发者可能需要理解GPS信号处理的算法,熟悉如何在特定的编程语言(如Java、Python或C++)中实现GPS定位功能,并考虑如何优化定位性能,比如减少延迟、提高精度或优化电池使用。...
本文将重点探讨如何利用Java编程语言从GPS接收机中获取定位信息,并对其进行解析。 #### GPS定位信息的处理过程 GPS定位信息的接收与处理通常涉及以下几个步骤: 1. **打开接收端口**:这一阶段主要负责设置通信...
1. 获取经纬度:这可能来自用户的输入、GPS设备或其他传感器。 2. 调用百度地图API:将经纬度作为参数,发送请求以获取该位置的详细信息,包括行政区域代码。 3. 解析返回结果:API会返回一个JSON对象,包含位置的...
本文将详细讨论如何使用卫通星GPS定位器GT06的通信协议,通过Socket进行数据传输,并结合Java与Spring Boot框架实现后台服务的对接。 卫通星GPS定位器GT06是一款基于GSM网络的车载定位设备,它能够实时发送位置、...
而标题中所涉及的“GPS数据”、“Java中GPS定位”、“gps_ja”、“gps定位_java写gps定位”等标签,既点明了项目的核心功能,也体现了其使用Java语言进行开发的特性。从描述中可知,该程序已经通过编译,用户可以拿...
本篇文章将通过一个具体的示例代码来详细解析如何在Android系统中实现GPS定位功能,从而获取用户的经纬度坐标。 #### 二、关键知识点 ##### 1. 权限声明 在使用Android系统的GPS功能之前,首先需要在应用的`...
这个项目的核心在于利用Java的图形用户界面(GUI)库,如Swing或JavaFX,创建交互式的地图展示,并结合GPS数据处理库来获取和解析GPS设备发送的数据。以下是一些关于如何实现这个功能的关键知识点: 1. **Java GUI...
1. Google Maps Geocoding API的使用,包括发起请求和解析响应。 2. JavaScript与Google Maps API的交互,主要是通过JavaScript对象与API进行数据交换。 3. Java后端对JSON数据的处理,通过Gson库将JSON转换为Java ...
在Android平台上,实现基站ID到经纬度的转换是移动定位的一种常见方式,尤其在GPS信号不可用或者弱的情况下。下面将详细阐述这个过程中的关键知识点。 首先,基站定位的基本原理是三角测量。每个移动基站都有一个...
```java import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.geocoding.GeoCodeOption; import com.baidu.mapapi.geocoding.GeoCodeResult; import com.baidu.mapapi.geocoding.GeoCoder; import ...