首页 > 其他分享 >定时获取地址经纬度信息

定时获取地址经纬度信息

时间:2023-10-30 10:03:39浏览次数:35  
标签:java String 经纬度 new 地址 location org import 定时

package com.hhx.controller;

import com.hhx.bean.Files;
import com.hhx.dao.FilesDao;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;


/**
* 定时
*/

@Component
@EnableScheduling
public class MyScheduledTasks {
@Resource
FilesDao fd;

@Scheduled(fixedDelay = 60000) // 每隔一分钟执行一次
public void myTask() {
// 定时任务执行的逻辑
List<Files> files = fd.selByNull();
for (int i = 0; i < files.size(); i++) {
try {
// 输入地名
String address = files.get(i).getField0001();

// 构建请求URL
String urlStr = "https://restapi.amap.com/v3/geocode/geo?address=" + URLEncoder.encode(address, "UTF-8") + "&output=json&key=e842114cf69ccfae6edc402e1ef2a799";

// 发送HTTP请求
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();

// 读取响应内容
StringBuilder response = new StringBuilder();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
response.append(line);
}
in.close();
}

// 解析JSON响应
JSONObject jsonObject = new JSONObject(response.toString());
JSONArray geocodes = jsonObject.getJSONArray("geocodes");
if (geocodes.length() > 0) {
JSONObject location = geocodes.getJSONObject(0);
String latitude = location.getString("location").split(",")[1];
String longitude = location.getString("location").split(",")[0];
System.out.println("经度: " + longitude);
System.out.println("纬度: " + latitude);
fd.upByField0001(address, longitude, latitude);
} else {
System.out.println("未找到该地点的经纬度信息");
}
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}

}

}

标签:java,String,经纬度,new,地址,location,org,import,定时
From: https://www.cnblogs.com/hhx070911/p/17797115.html

相关文章

  • MAC地址和IP地址都有什么作用?为什么有了MAC地址还需要IP地址?为什么有了IP地址还需要MA
    MAC地址和IP地址都有什么作用?MAC地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址,用来定义网络设备的位置,不可变更。IP地址是网络层和以上各层使用的地址,是一种逻辑地址。IP地址用来区别网络上的计算机。为什么有了MAC地址还需要IP地址?如果我们只使用MAC地址进行寻址的......
  • npm下载源如何修改为其他源地址
    npm下载源如何修改为其他源地址目录npm下载源如何修改为其他源地址1、国内源地址清单2、修改npm源2.1、临时修改2.2、永久修改方法一:使用命令行修改方法二:直接修改配置文件3、npm仓库管理工具1、国内源地址清单官方的源地址:https://registry.npmjs.org/由于服务器在海外,国内......
  • RKE2 config containerd private registry (rke2配置私有仓库地址)
    文章目录1.预备条件2.配置镜像仓库1.预备条件安装rke2:博客:rke2在线部署kubernetes官网:https://docs.rke2.io/install/quickstart2.配置镜像仓库Containerd可以配置为连接到私有镜像仓库,并使用仓库在每个节点上拉取私有镜像。启动时,RKE2会检查/etc/rancher/rke2/中是......
  • IPV6 NDP 组播ip地址和组播mac计算
    监听组播ip(被请求节点组播地址)地址计算FF02:0000:0000:0000:0000:0001:FF:(IPV6单播或任意播地址)FF02::5OSPFV3的组播地址FF02::6OSPFV3中DR的组播地址FF02::9RIP的组播组播MAC地址33:33:(IPV6单播或任意播地址)......
  • 根据时间列出指定时间段
    问题: 根据时间列出以下时间段函数公式解决:时间段起始时间单独成列,跨日期的时间分别列出=LOOKUP(MOD(B2,1),G$2:G$7,F$2:F$7)=XLOOKUP(MOD(B2,1),G$2:G$7,F$2:F$7,,-1) ......
  • 斐波那契数列--按值--地址--指针
    //按值#include<bits/stdc++.h>usingnamespacestd;intsum(inta){ if(a<=2){ return1; }else{ returnsum(a-1)+sum(a-2); } }intmain(){ intx,c,d; cin>>c; x=sum(c); cout<<x; return0;}//地址#include<bits/stdc++.h&g......
  • 斐波那契数列 (地址)
    //地址#include<bits/stdc++.h>usingnamespacestd;intsum(int&a){intb,c;b=a-1;c=a-2;if(a<=2){return1;}else{returnsum(b)+sum(c);}}intmain(){intx,a;cin>>a;x=sum(a);......
  • ⦁ 地址传递
    includeusingnamespacestd;/*那些参数是地址传递,就在那个变量家&号计算时写的时其变量,不加&号*/ intsum(int&a,intb){intn=a+b;a=a+1;returnn;}intmain(){intx,c=3,d=5;//调用sum函数,并将计算结果赋值给变量xx=sum(c,d);cout<<"x="<<x<<",c=&q......
  • 地址传递
    #include<bits/stdc++.h>usingnamespacestd;/*那些参数是地址传递,就在那个变量前加&号计算时写的是其变量,不加&号*/intDSWEASDFCSF(int&a,intb){intn=a+b;a=a+1;returnn;}intmain(){intx,c=3,d=5;//调用DSWEASDF......
  • ⦁ 按值传递⦁ 地址传递⦁ 指针传递
    ///*//自定义函数必须在调用该函数之前声明//生命是可以不写函数体,但在后面需要将函数体补充完整//按值传递德行参与调用函数类型一致//*///#include<iostream>//usingnamespacestd;//intsum(inta,intb){//// intn=a+b;// a+=1;// returnn;//}//intmain(......