热带气旋产品接口共包含四个接口,台风预报台列表
接口用以返回预报台站点名和编码 CODE,台风列表
接口可按查询年份返回当年的台风数据,台风预报
接口可以获取台风预报轨迹点和路径,台风实况路径
可实时获取台风信息,包括台风实时位置、等级、气压、风力、速度。
台风预报台列表
获取台风预报台列表,返回预报台编码和名称
接口地址
https://api.foreocean.com/typhoon/station/list
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
String requestUrl = "https://api.foreocean.com/typhoon/station/list";
String response = get(requestUrl, params);
System.out.println(response);
}
public static String get(String url, Map<String, Object> params) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
url = url + "?";
for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
String temp = key + "=" + params.get(key) + "&";
url = url + temp;
}
url = url.substring(0, url.length() - 1);
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("Token","API调用令牌");
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String str = EntityUtils.toString(entity, CHARSET);
return str;
}
} finally {
response.close();
httpClient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
python
import requests
if __name__ == '__main__':
url = 'https://api.foreocean.com/typhoon/station/list'
headers = {'Token': 'API调用令牌'}
params = {}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000",//响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [//预报站点名
"中国",
"香港",
"美国",
"台湾",
"日本",
"广州",
"上海",
"浙江",
"江西"
],
"msg": "success",//返回信息描述
"success": true//请求是否成功,true-成功,false-失败
}
台风列表
根据年份查询当年份的台风列表
接口地址
https://api.foreocean.com/typhoon/list
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
year | String | 是 | 年份,例如:2021 |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("year", "2022");
String requestUrl = "https://api.foreocean.com/typhoon/list";
String response = get(requestUrl, params);
System.out.println(response);
}
public static String get(String url, Map<String, Object> params) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
url = url + "?";
for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
String temp = key + "=" + params.get(key) + "&";
url = url + temp;
}
url = url.substring(0, url.length() - 1);
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("Token","API调用令牌");
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String str = EntityUtils.toString(entity, CHARSET);
return str;
}
} finally {
response.close();
httpClient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
python
import requests
if __name__ == '__main__':
url = 'https://api.foreocean.com/typhoon/list'
headers = {'Token': 'API调用令牌'}
params = {'year': '2022'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [{
"code": "202116", //台风编号code
"name": "蒲公英", //台风名
"updatetime": "2021-09-30 10:20:06", //数据更新时间
"enname": "Mindulle", //台风英文名
"status": "active" //当前是否活跃,分 active 活跃 和 over 完结 两种情况
}],
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}
台风预报
获取台风预报轨迹点和路径
接口地址
https://api.foreocean.com/typhoon/forecast
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
code | String | 是 | 台风编号,例如:2021 年蒲公英台风传 202116 |
forecastOrg | String | 否 | 预报台机构,例如:中国,取值为预报台列表接口返回的信息 |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("code", "202116");
params.put("forecastOrg", "中国");
String requestUrl = "https://api.foreocean.com/typhoon/forecast";
String response = get(requestUrl, params);
System.out.println(response);
}
public static String get(String url, Map<String, Object> params) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
url = url + "?";
for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
String temp = key + "=" + params.get(key) + "&";
url = url + temp;
}
url = url.substring(0, url.length() - 1);
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("Token","API调用令牌");
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String str = EntityUtils.toString(entity, CHARSET);
return str;
}
} finally {
response.close();
httpClient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
python
import requests
if __name__ == '__main__':
url = 'https://api.foreocean.com/typhoon/forecast'
headers = {'Token': 'API调用令牌'}
params = {'code': '202116','forecastOrg': '中国'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [{ //外层为台风历史轨迹
"code": "202116", //台风编号
"r7Se": "220", //七级风圈-东南
"depict": "",
"forecastList": [
{ //forecastList层结构为站点预测台风轨迹
"code": "202122",//台风编号
"depict": "",
"lng": "139.3",//经度
"bizDate": "2021-12-14 02:00:00",//轨迹时间点
"moveDirection": "",//移动方向
"forecastOrg": "中国",//预报机构
"updateTime": "2021-12-13 15:34:59",//更新时间
"centerSpeed": "23",//中心风速
"centerPressure": "990",//中心点气压 百帕
"moveSpeed": "",//移动速度
"radius10": "",// 十级风圈半径
"bedit": "0",
"radius7": "",// 七级风圈半径
"lat": "6.4",//纬度
"forecastDate": "2021-12-13 14:00:00"//预报时间
},
{
"code": "202122",
"depict": "",
"lng": "136.7",
"bizDate": "2021-12-14 14:00:00",
"moveDirection": "",
"forecastOrg": "中国",
"updateTime": "2021-12-13 15:34:59",
"centerSpeed": "30",
"centerPressure": "980",
"moveSpeed": "",
"radius10": "",
"bedit": "0",
"radius7": "",
"lat": "7.5",
"forecastDate": "2021-12-13 14:00:00"
},
{
"code": "202122",
"depict": "",
"lng": "134.4",
"bizDate": "2021-12-15 02:00:00",
"moveDirection": "",
"forecastOrg": "中国",
"updateTime": "2021-12-13 15:34:59",
"centerSpeed": "35",
"centerPressure": "970",
"moveSpeed": "",
"radius10": "",
"bedit": "0",
"radius7": "",
"lat": "8.1",
"forecastDate": "2021-12-13 14:00:00"
},
//后面省略了
],
"bizDate": "2021-09-23 20:00:00", //轨迹点时间
"r10Sw": "0", //十级风圈-西南
"r12Sw": "0", //十二级风圈-西南
"centerSpeed": "18", //中心点风速 米/秒
"centerPressure": "998", //中心点气压 百帕
"radius10": "0", // 十级风圈半径
"radius12": "0", //十二级风圈半径
"r12Se": "0", //十二级风圈-东南
"radius7": "250", // 七级风圈半径
"r7Nw": "200", //七级风圈-西北
"lat": "13.8", //纬度
"r10Se": "0", //十级风圈-东南
"r12Nw": "0", //十二级风圈-西北
"lng": "143.3", //经度
"r10Nw": "0", //十级风圈-西北
"moveDirection": "西西北 ", //移动方向
"r7Ne": "250", //七级风圈-东北
"moveSpeed": "20", //移动速度 公里/小时
"r10Ne": "0", //十级风圈-东北
"r12Ne": "0", //十级风圈-东北
"bedit": "0",
"updatetime": "2021-09-23 21:31:06", //更新时间
"r7Sw": "180" //七级风圈-西南
}],
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}
台风实况路径
可实时获取台风信息,包括台风实时位置、等级、气压、风力、速度
接口地址
https://api.foreocean.com/typhoon/track
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
code | String | 是 | 台风编号,例如:2021 年蒲公英台风传 202116 |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("code", "202116");
String requestUrl = "https://api.foreocean.com/typhoon/track";
String response = get(requestUrl, params);
System.out.println(response);
}
public static String get(String url, Map<String, Object> params) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
url = url + "?";
for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
String temp = key + "=" + params.get(key) + "&";
url = url + temp;
}
url = url.substring(0, url.length() - 1);
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("Token","API调用令牌");
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String str = EntityUtils.toString(entity, CHARSET);
return str;
}
} finally {
response.close();
httpClient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
python
import requests
if __name__ == '__main__':
url = 'https://api.foreocean.com/typhoon/track'
headers = {'Token': 'API调用令牌'}
params = {'code': '202116'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [
{
"code": "202116", //台风编号
"r7Se": "220", //七级风圈-东南
"forecastList": [],
"bizDate": "2021-09-23 20:00:00", //轨迹点时间
"r10Sw": "0", //十级风圈-西南
"r12Sw": "0", //十二级风圈-西南
"centerSpeed": "18", //中心点风速 米/秒
"centerPressure": "998", //中心点气压 百帕
"radius10": "0", // 十级风圈半径
"radius12": "0", //十二级风圈半径
"r12Se": "0", //十二级风圈-东南
"radius7": "250", // 七级风圈半径
"r7Nw": "200", //七级风圈-西北
"lat": "13.8", //纬度
"r10Se": "0", //十级风圈-东南
"r12Nw": "0", //十二级风圈-西北
"lng": "143.3", //经度
"r10Nw": "0", //十级风圈-西北
"moveDirection": "西西北 ", //移动方向
"r7Ne": "250", //七级风圈-东北
"moveSpeed": "20", //移动速度 公里/小时
"r10Ne": "0", //十级风圈-东北
"r12Ne": "0", //十级风圈-东北
"bedit": "0",
"updatetime": "2021-09-23 21:31:06", //更新时间
"r7Sw": "180", //七级风圈-西南
"depict": ""
},
//后面省略了
],
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}