RPV21305+1134038+7772277800000012;ID=0011>>>**"); try { GeocodingResult[] gResp = Geoc-6ren">
gpt4 book ai didi

java - 谷歌反向地理编码从纬度和经度获取地址

转载 作者:行者123 更新时间:2023-12-01 09:28:43 25 4
gpt4 key购买 nike

我的字符串格式是">RPV21305+1134038+7772277800000012;ID=0011<"我正在分割纬度和经度,如下面的代码所示。但我无法从 google API 访问经纬度地址。我的程序需要反向地理代码。

我的程序是

import java.io.*;
import java.net.*;
import java.util.*;
import java.sql.*;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;

public class FileHandler {
public static void main(String [] args) {
//reading a file for iput
String fileName = "File1/ascii_file";
String line = null;
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
System.out.println(line);
int se = line.endsWith("<")? (line.length() - 1) : line.length();
System.out.println("se-----------------------------"+se);
String parsedstring = line.substring(1,se);
System.out.println("parsedString"+parsedstring);
String T[] = parsedstring.split(";");
System.out.println("ttttt-----------------------------"+T[0]);
String mobileID = null;
for (int i = 1; i < T.length; i++) {
if (T[i].startsWith("ID=")) {
mobileID = T[i].substring(3);
System.out.println("mobileID-----------------"+mobileID);
break;
}
}

//getting lattitude and longitude from string;
int gpsTOD = Integer.parseInt(T[0].substring(
float latitude = Float.parseFloat(T[0].substring( 8
float lat =latitude/100000;
float longitude = Float.parseFloat(T[0].substring(16,25));
float lon =longitude/1000000;
float speedKPH = Float.parseFloat(T[0].substring(25,28));
float headingDeg = Float.parseFloat(T[0].substring(28,31));
String srcStr = T[0].substring(31,32);
String ageStr = T[0].substring(32,33);
double altitudeM = 0.0;
double odomKM = 0.0;
long gpioInput = 0L;
String accountID ="demo";
String status ="0";
System.out.println("gpstod:"+gpsTOD);
System.out.println("lat:"+lat);
System.out.println("lon:"+lon);
System.out.println("speedKPH:"+speedKPH);
System.out.println("headingDeg:"+headingDeg);
System.out.println("srcStr:"+srcStr);
System.out.println("ageStr:"+ageStr);
System.out.println("altitudeM:"+altitudeM);
System.out.println("odomKM:"+odomKM);
System.out.println("gpioInput:"+gpioInput);
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/gts","gts","opengts");
Statement stmt=con.createStatement();
stmt.executeUpdate("insert into EventData(accountID,deviceID,timestamp,statusCode,latitude,longitude,gpsAge,speedKPH,heading,altitude,odometerKM)values('"+ accountID +"','"+ mobileID +"','"+ gpsTOD +"','"+ status +"','"+ lat +"','"+ lon +"','"+ ageStr +"','"+ speedKPH +"','"+ headingDeg +"','"+ altitudeM +"','"+ odomKM +"')");
System.out.println("insert into EventData(accountID,deviceID,timestamp,latitude,longitude,gpsAge,speedKPH,heading,altitude,odometerKM)values('"+ accountID +"','"+ mobileID +"','"+ gpsTOD+"','"+ lat +"','"+ lon +"','"+ ageStr +"','"+ speedKPH +"','"+ headingDeg +"','"+ altitudeM +"','"+ odomKM +"')");
con.close();
}
catch (Exception e) {
System.out.println(e);
}
}
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + fileName + "'");
}
catch(IOException ex) {
System.out.println("Error reading file '" + fileName + "'");
}
}
}

最佳答案

您将需要在代码中使用类似的内容

GeoApiContext gtx = new GeoApiContext().setApiKey("**<<<<your-key-here>>>>**");
try {
GeocodingResult[] gResp = GeocodingApi.newRequest(gtx).latlng(new LatLng(37, -121)).await();
System.out.println(gResp[0].formattedAddress);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

另请确保已从控制台启用 google API,并且您已携带 key 。完成这两个操作后,您应该会得到如下所示的输出

INFO: Request: https://maps.googleapis.com/maps/api/geocode/json?key=your-key&latlng=37.38000000%2C-121.88000000 1685 Lederer Cir, San Jose, CA 95131, USA

地理编码 API 下方是 http 请求,因此如果您愿意,也可以直接尝试

像下面这样的东西也应该有效

https://maps.googleapis.com/maps/api/geocode/json?latlng=23,82.5

如果您使用 java 代码,请在对 jar 的评论中添加以下依赖项

<dependency>
<groupId>com.google.maps</groupId>
<artifactId>google-maps-services</artifactId>
<version>0.1.15</version>
</dependency>

这几乎吸引了以下导入

import com.google.maps.GeoApiContext;
import com.google.maps.GeocodingApi;
import com.google.maps.GeocodingApiRequest;
import com.google.maps.model.GeocodingResult;
import com.google.maps.model.LatLng;

关于java - 谷歌反向地理编码从纬度和经度获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39633328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com