Java根据地址获取城市
1、使用第三方API:通过调用高德地图、百度地图等第三方API,根据地址获取城市信息。
2、解析方法:将地址字符串按照一定的规则进行解析,提取出城市信息。
Java根据IP获取坐标
1、使用第三方API:通过调用腾讯地图、百度地图等第三方API,根据IP获取坐标信息。
2、解析方法:将返回的JSON数据解析成Java对象,提取出坐标信息。
Java根据IP获取城市
1、使用第三方API:通过调用腾讯地图、百度地图等第三方API,根据IP获取城市信息。
2、解析方法:将返回的JSON数据解析成Java对象,提取出城市信息。
示例代码
1、Java根据地址获取城市(以高德地图API为例)
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class GetCityByAddress { public static void main(String[] args) { String address = "北京市朝阳区阜通东大街6号"; String key = "你的高德地图API密钥"; String url = "https://restapi.amap.com/v3/geocode/geo?key=" + key + "&address=" + address; try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.connect(); if (connection.getResponseCode() == 200) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8")); StringBuilder result = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); System.out.println("城市信息:" + result.toString()); } else { System.out.println("请求失败,错误码:" + connection.getResponseCode()); } connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
2、Java根据IP获取坐标(以腾讯地图API为例)
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSON; public class GetCoordinateByIP { public static void main(String[] args) { String ip = "8.8.8.8"; // 目标IP地址 String key = "你的腾讯地图API密钥"; // 你的腾讯地图API密钥 String url = "http://apis.map.qq.com/ws/location/v1/ip?ip=" + ip + "&key=" + key; // 腾讯地图IP查询接口地址 try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.connect(); if (connection.getResponseCode() == 200) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8")); StringBuilder result = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); // 解析返回的JSON数据,提取坐标信息 JSONObject jsonObject = JSONObject.parseObject(result.toString()); JSONArray locationInfoList = jsonObject.getJSONArray("location_info"); for (int i = 0; i < locationInfoList.size(); i++) { JSONObject locationInfo = locationInfoList.getJSONObject(i); double lng = locationInfo.getDoubleValue("lng"); // 经度 double lat = locationInfo.getDoubleValue("lat"); // 纬度 System.out.println("坐标信息:" + lng + ", " + lat); } } else { System.out.println("请求失败,错误码:" + connection.getResponseCode()); } connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/508533.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复