2023-02-26 05:21:16 +00:00
|
|
|
|
package com.bg7yoz.ft8cn.callsign;
|
2023-03-24 16:43:34 +00:00
|
|
|
|
/**
|
|
|
|
|
* 呼号信息类,用于归属地查询
|
|
|
|
|
*
|
|
|
|
|
* @author BG7YOZ
|
|
|
|
|
* @date 2023-03-20
|
|
|
|
|
*/
|
2023-02-26 05:21:16 +00:00
|
|
|
|
|
|
|
|
|
import android.annotation.SuppressLint;
|
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
|
|
|
|
|
|
import com.bg7yoz.ft8cn.GeneralVariables;
|
|
|
|
|
import com.bg7yoz.ft8cn.R;
|
|
|
|
|
|
|
|
|
|
public class CallsignInfo {
|
|
|
|
|
public static String TAG="CallsignInfo";
|
|
|
|
|
public String CallSign;//呼号
|
|
|
|
|
public String CountryNameEn;//国家
|
|
|
|
|
public String CountryNameCN;//国家中文名
|
|
|
|
|
public int CQZone;//CQ分区
|
|
|
|
|
public int ITUZone;//ITU分区
|
|
|
|
|
public String Continent;//大陆缩写
|
|
|
|
|
public float Latitude;//以度为单位的纬度,+ 表示北
|
|
|
|
|
public float Longitude;//以度为单位的经度,+ 表示西
|
|
|
|
|
public float GMT_offset;//与 GMT 的本地时间偏移
|
|
|
|
|
public String DXCC;//DXCC前缀
|
|
|
|
|
|
|
|
|
|
@SuppressLint("DefaultLocale")
|
|
|
|
|
@NonNull
|
|
|
|
|
@Override
|
|
|
|
|
public String toString() {
|
|
|
|
|
String country;
|
|
|
|
|
if (GeneralVariables.isChina) {
|
|
|
|
|
country=CountryNameCN;
|
|
|
|
|
}else {
|
|
|
|
|
country=CountryNameEn;
|
|
|
|
|
}
|
|
|
|
|
//return String.format("呼号:%s\n位置:%s\nCQ分区:%d\nITU分区:%d\n大陆:%s\n经纬度:%.2f,%.2f\n时区:%.0f\nDXCC前缀:%s"
|
|
|
|
|
return String.format(GeneralVariables.getStringFromResource(R.string.callsign_info)
|
|
|
|
|
, CallSign, country, CQZone, ITUZone, Continent, Longitude, Latitude, GMT_offset, DXCC);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public CallsignInfo(String callSign, String countryNameEn,
|
|
|
|
|
String countryNameCN, int CQZone, int ITUZone,
|
|
|
|
|
String continent, float latitude, float longitude,
|
|
|
|
|
float GMT_offset, String DXCC) {
|
|
|
|
|
CallSign = callSign;
|
|
|
|
|
CountryNameEn = countryNameEn;
|
|
|
|
|
CountryNameCN = countryNameCN;
|
|
|
|
|
this.CQZone = CQZone;
|
|
|
|
|
this.ITUZone = ITUZone;
|
|
|
|
|
Continent = continent;
|
|
|
|
|
Latitude = latitude;
|
|
|
|
|
Longitude = longitude;
|
|
|
|
|
this.GMT_offset = GMT_offset;
|
|
|
|
|
this.DXCC = DXCC;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public CallsignInfo(String s) {
|
|
|
|
|
String[] info = s.split(":");
|
|
|
|
|
if (info.length<9){
|
|
|
|
|
Log.e(TAG,"呼号数据格式错误!"+s);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
CountryNameEn = info[0].replace("\n", "").trim();
|
|
|
|
|
CQZone = Integer.parseInt(info[1].replace("\n", "").replace(" ", ""));
|
|
|
|
|
ITUZone = Integer.parseInt(info[2].replace("\n", "").replace(" ", ""));
|
|
|
|
|
Continent = info[3].replace("\n", "").replace(" ", "");
|
|
|
|
|
Latitude = Float.parseFloat(info[4].replace("\n", "").replace(" ", ""));
|
|
|
|
|
Longitude = Float.parseFloat(info[5].replace("\n", "").replace(" ", ""));
|
|
|
|
|
GMT_offset = Float.parseFloat(info[6].replace("\n", "").replace(" ", ""));
|
|
|
|
|
DXCC = info[7].replace("\n", "").replace(" ", "");
|
|
|
|
|
CallSign= info[8].replace("\n", "").replace(" ", "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|