我的字符串格式为">RPV21305+1134038+7772277800000012;ID=0011<"
我正在分割纬度和经度,如下面的代码所示。但我无法从谷歌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 + "'");
}
}
}
答案 0 :(得分:1)
你需要在代码
中使用这样的东西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,并且您拥有密钥。有了这两个,你应该获得输出,如下所示
信息:请求:https://maps.googleapis.com/maps/api/geocode/json?key= 您的密钥&amp; 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;