视频学习地址
这篇文章和【Nominatim】是相呼应的,在尝试了OSM数据一直有问题之后,通过别人的指点是不是可以换个思路,我的数据只需要精确到市级别,也可以不用OSM这样全的数据(主要原因还是OSM太过庞大了)
在网上看到有人发布的一个地址解析和逆地址解析的SDK(下面称为 Geo),觉得是个思路,随即进行了数据测试
- 我的数据要求是精确到市,所以我的测试也只到这里,需要更细的力度要自己再去尝试
- 通过Geo返回的数据和腾讯地图API接口返回的数据进行对比
- 字符串对比省、市
- 经纬度地址相差 10km之内
Geo 文档
https://blog.csdn.net/deng0515001/article/details/99606156
https://github.com/deng0515001/lnglat2Geo
测试问题
地址解析
测试代码
@Test
void compareGeocodingTest() throws InterruptedException {
List<String> list = getAddressList();
for (String address : list) {
Result<AddressGlobalCoordinatesDTO> wx = wxMapService.getAddressGlobalCoordinates(address);
GeoAddress geoByAddress = getGeoByAddress(address);
System.out.println(address);
System.out.println(geoByAddress);
System.out.println(wx.getData());
Thread.sleep(200);
Assertions.assertEquals(geoByAddress.getProvince(), wx.getData().getProvince());
Assertions.assertEquals(geoByAddress.getCity(), wx.getData().getCity());
double v = calculateDistance(geoByAddress.getLat(), geoByAddress.getLon(), wx.getData().getLatitude() + "", wx.getData().getLongitude() + "");
Assertions.assertTrue(v < 10D);
}
}
测试问题
问题描述 | 问题案例 | 问题解决 |
---|---|---|
直辖市、香港、澳门,这些地区不是市级,是省级 | 北京市、天津市、上海市、重庆市 | 获取直辖市的时候,把它们看作省份 |
经纬度,相差较大(超过 10km) | 南平市(83km) 【X】118.17771, 26.641774 【T】118.08333, 27.38155 北京市 (27km) 【X】116.407394, 39.904211 【T】116.724502,39.905023 河池市(60km) 【X】108.085261, 24.692931 【T】108.63654, 24.48503 遵义市(10km) 【X】106.927389, 27.725654 【T】107.031922, 27.721931 海东市(27km) 【X】102.104287, 36.502039 【T】102.41029, 36.473864 铁门关市(15km) 【X】85.501217, 41.82725 【T】85.670291, 41.862997 | 这个不一定就是问题,如果想解决,可以参考下面的【数据替换】 |
解析出来是那曲地区 | 那曲市 | 特殊处理 |
香港、澳门,没有带特别行政区域 | 香港、澳门 | 不用处理 |
没有经纬度的数据 | 台湾省的数据没有经纬度 | 特殊处理、数据替换 |
有些地方现在名称和数据叫法不一样 | 台湾省的【桃园市】显示为【桃园县】 |
逆地址解析
为了测试的覆盖率,选择让GPT生成了很多的数据,但是GPT生成的数据不一定准确,它可能把唐山的数据归类到了天津,但这个没关系,只要最终和腾讯地图一致即可
- 直辖市需要特殊处理层级
- 地区命名不一致:西藏自治区,那曲地区
- 澳门的识别率不是很好
- 海上识别不好
- 部分边界地区会识别错误,腾讯地图也会,概率也很小,都是些很犄角旮旯的地方
问题解决
地址解析
对于地址解析最大的问题是数据不全,最开始我想手动设置一些数据到它的Map里面去,但测试了很久都不行,发现它返回的Map是一个不可更改的Map
它底层使用的数据是二进制的,尝试破解了一下,还没成功(应该是可以的,但是算了)
最终选择手动在返回数据的时候进行处理
public static GeoAddress searchAddress(String address) {
List<String> list = Arrays.asList("北京市", "上海市","天津市", "重庆市","香港", "澳门");
GeoAddress result;
address = queryAddressConvert(address);
// 获取特殊城市的数据
if (list.contains(address)) {
result = getGeoAddressByProvince(address);
} else {
result = getGeoAddressByCity(address);
}
// 为了测试数据,暂时处理一下香港澳门的数据
tempHandler(result, address);
// 数据补充
extraData(result);
// 返回数据转换
cityConvert(result);
return result;
}
private static String queryAddressConvert(String address) {
java.util.HashMap<String, String> convertMap = new java.util.HashMap<>(30);
convertMap.put("桃园市","桃园县");
return convertMap.getOrDefault(address, address);
}
public static GeoAddress getGeoAddressByProvince(String province) {
if (StringUtils.isBlank(province)) {
return null;
}
Seq<Admin> adminNodes = GeoTrans.normalizeName(province, null, null, null, false);
if (adminNodes == null || adminNodes.isEmpty()) {
return null;
}
return new GeoAddress(adminNodes.head().province(), adminNodes.head().province(), adminNodes.head().center().lng() + "", adminNodes.head().center().lat() + "");
}
public static GeoAddress getGeoAddressByCity(String city) {
if (StringUtils.isBlank(city)) {
return null;
}
Seq<Admin> adminNodes = GeoTrans.normalizeName(null, city, null, null, false);
if (adminNodes == null || adminNodes.isEmpty()) {
return null;
}
return new GeoAddress(adminNodes.head().province(), adminNodes.head().city(), adminNodes.head().center().lng() + "", adminNodes.head().center().lat() + "");
}
private static void tempHandler(GeoAddress result, String address) {
if (result != null && address.equals("香港")) {
result.setProvince("");
result.setCity("香港特别行政区");
}
if (result != null && address.equals("澳门")) {
result.setProvince("");
result.setCity("澳门特别行政区");
}
}
private static void extraData(GeoAddress geoAddress) {
java.util.HashMap<Object, Location> locationMap = new java.util.HashMap<>(30);
locationMap.put("台北市", new Location(121.56355, 25.03737));
locationMap.put("新北市", new Location(121.46575, 25.01195));
locationMap.put("桃园县", new Location(121.30111, 24.99363));
locationMap.put("台中市", new Location(120.64821, 24.16324));
locationMap.put("台南市", new Location(120.18476, 22.99124));
locationMap.put("高雄市", new Location(120.31226, 22.62014));
locationMap.put("基隆市", new Location(121.74479, 25.13162));
locationMap.put("新竹市", new Location(120.96893, 24.80619));
locationMap.put("嘉义市", new Location(120.45358, 23.48151));
locationMap.put("新竹县", new Location(121.012907, 24.826875));
locationMap.put("苗栗县", new Location(120.82059, 24.564385));
locationMap.put("彰化县", new Location(120.544633, 24.075658));
locationMap.put("南投县", new Location(120.690507, 23.902674));
locationMap.put("云林县", new Location(120.530053, 23.696387));
locationMap.put("嘉义县", new Location(120.292891, 23.458617));
locationMap.put("屏东县", new Location(120.487721, 22.683328));
locationMap.put("宜兰县", new Location(121.763137, 24.731425));
locationMap.put("花莲县", new Location(121.620636, 23.991337));
locationMap.put("台东县", new Location(121.150552, 22.755332));
locationMap.put("澎湖县", new Location(119.570704, 23.567297));
if (locationMap.containsKey(geoAddress.getCity())) {
Location location = locationMap.get(geoAddress.getCity());
geoAddress.setLat(String.valueOf(location.lat()));
geoAddress.setLon(String.valueOf(location.lng()));
}
}
private static void cityConvert(GeoAddress result) {
java.util.HashMap<String, String> convertMap = new java.util.HashMap<>(30);
convertMap.put("桃园县","桃园市");
convertMap.put("那曲地区","那曲市");
result.setCity(convertMap.getOrDefault(result.getCity(), result.getCity()));
}
逆地址解析
public static GeoAddress reverseAddress(String lon, String lat) {
List<String> list = Arrays.asList("北京市", "上海市","天津市", "重庆市");
Admin admin = GeoTrans.determineAdmin(Double.parseDouble(lon), Double.parseDouble(lat), null, false);
// 直辖市
if (list.contains(admin.province())) {
return new GeoAddress(admin.province(), admin.province(), null, null);
}
return new GeoAddress(admin.province(), admin.city(), null, null);
}
测试数据
地址解析
数据是让GPT生成的,中国市级以上的区域,GPT回答有 339个,我测试了 383个,几乎可以理解为全覆盖了
public static List<String> getAddressList() {
List<String> list = new ArrayList<>(400);
// 1. 北京市
list.addAll(Arrays.asList("北京市"));
// 2. 天津市
list.addAll(Arrays.asList("天津市"));
// 3. 河北省
list.addAll(Arrays.asList("石家庄市", "唐山市", "秦皇岛市", "邯郸市", "邢台市", "保定市", "张家口市", "承德市", "沧州市", "廊坊市", "衡水市"));
// 4. 山西省
list.addAll(Arrays.asList("太原市", "大同市", "阳泉市", "长治市", "晋城市", "朔州市", "晋中市", "运城市", "忻州市", "临汾市", "吕梁市"));
// 5. 内蒙古自治区
list.addAll(Arrays.asList("呼和浩特市", "包头市", "乌海市", "赤峰市", "通辽市", "鄂尔多斯市", "呼伦贝尔市", "巴彦淖尔市", "乌兰察布市", "兴安盟", "锡林郭勒盟", "阿拉善盟"));
// 6. 辽宁省
list.addAll(Arrays.asList("沈阳市", "大连市", "鞍山市", "抚顺市", "本溪市", "丹东市", "锦州市", "营口市", "阜新市", "辽阳市", "盘锦市", "铁岭市", "朝阳市", "葫芦岛市"));
// 7. 吉林省
list.addAll(Arrays.asList("长春市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "松原市", "白城市", "延边朝鲜族自治州"));
// 8. 黑龙江省
list.addAll(Arrays.asList("哈尔滨市", "齐齐哈尔市", "鸡西市", "鹤岗市", "双鸭山市", "大庆市", "伊春市", "佳木斯市", "七台河市", "牡丹江市", "黑河市", "绥化市"));
// 9. 上海市
list.addAll(Arrays.asList("上海市"));
// 10. 江苏省
list.addAll(Arrays.asList("南京市", "无锡市", "徐州市", "常州市", "苏州市", "南通市", "连云港市", "淮安市", "盐城市", "扬州市", "镇江市", "泰州市", "宿迁市"));
// 11. 浙江省
list.addAll(Arrays.asList("杭州市", "宁波市", "温州市", "嘉兴市", "湖州市", "绍兴市", "金华市", "衢州市", "舟山市", "台州市", "丽水市"));
// 12. 安徽省
list.addAll(Arrays.asList("合肥市", "芜湖市", "蚌埠市", "淮南市", "马鞍山市", "淮北市", "铜陵市", "安庆市", "黄山市", "滁州市", "阜阳市", "宿州市", "六安市", "亳州市", "池州市", "宣城市"));
// 13. 福建省
list.addAll(Arrays.asList("福州市", "厦门市", "莆田市", "三明市", "泉州市", "漳州市", "南平市", "龙岩市", "宁德市"));
// 14. 江西省
list.addAll(Arrays.asList("南昌市", "景德镇市", "萍乡市", "九江市", "新余市", "鹰潭市", "赣州市", "吉安市", "宜春市", "抚州市", "上饶市"));
// 15. 山东省
list.addAll(Arrays.asList("济南市", "青岛市", "淄博市", "枣庄市", "东营市", "烟台市", "潍坊市", "济宁市", "泰安市", "威海市", "日照市", "临沂市", "德州市", "聊城市", "滨州市", "菏泽市"));
// 16. 河南省
list.addAll(Arrays.asList("郑州市", "开封市", "洛阳市", "平顶山市", "安阳市", "鹤壁市", "新乡市", "焦作市", "濮阳市", "许昌市", "漯河市", "三门峡市", "南阳市", "商丘市", "信阳市", "周口市", "驻马店市", "济源市"));
// 17. 湖北省
list.addAll(Arrays.asList("武汉市", "黄石市", "十堰市", "宜昌市", "襄阳市", "鄂州市", "荆门市", "孝感市", "荆州市", "黄冈市", "咸宁市", "随州市", "恩施土家族苗族自治州", "仙桃市", "潜江市", "天门市", "神农架林区"));
// 18. 湖南省
list.addAll(Arrays.asList("长沙市", "株洲市", "湘潭市", "衡阳市", "邵阳市", "岳阳市", "常德市", "张家界市", "益阳市", "郴州市", "永州市", "怀化市", "娄底市", "湘西土家族苗族自治州"));
// 19. 广东省
list.addAll(Arrays.asList("广州市", "韶关市", "深圳市", "珠海市", "汕头市", "佛山市", "江门市", "湛江市", "茂名市", "肇庆市", "惠州市", "梅州市", "汕尾市", "河源市", "阳江市", "清远市", "东莞市", "中山市", "潮州市", "揭阳市", "云浮市"));
// 20. 广西壮族自治区
list.addAll(Arrays.asList("南宁市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "钦州市", "贵港市", "玉林市", "百色市", "贺州市", "河池市", "来宾市", "崇左市"));
// 21. 海南省
list.addAll(Arrays.asList("海口市", "三亚市", "三沙市", "儋州市", "五指山市", "琼海市", "文昌市", "万宁市", "东方市", "定安县", "屯昌县", "澄迈县", "临高县", "白沙黎族自治县", "昌江黎族自治县", "乐东黎族自治县", "陵水黎族自治县", "保亭黎族苗族自治县", "琼中黎族苗族自治县"));
// 22. 重庆市
list.addAll(Arrays.asList("重庆市"));
// 23. 四川省
list.addAll(Arrays.asList("成都市", "自贡市", "攀枝花市", "泸州市", "德阳市", "绵阳市", "广元市", "遂宁市", "内江市", "乐山市", "南充市", "眉山市", "宜宾市", "广安市", "达州市", "雅安市", "巴中市", "资阳市", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州"));
// 24. 贵州省
list.addAll(Arrays.asList("贵阳市", "六盘水市", "遵义市", "安顺市", "毕节市", "铜仁市", "黔西南布依族苗族自治州", "黔东南苗族侗族自治州", "黔南布依族苗族自治州"));
// 25. 云南省
list.addAll(Arrays.asList("昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "普洱市", "临沧市", "楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "大理白族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州"));
// 26. 西藏自治区
list.addAll(Arrays.asList("拉萨市", "日喀则市", "昌都市", "林芝市", "山南市", "那曲市", "阿里地区"));
// 27. 陕西省
list.addAll(Arrays.asList("西安市", "铜川市", "宝鸡市", "咸阳市", "渭南市", "延安市", "汉中市", "榆林市", "安康市", "商洛市"));
// 28. 甘肃省
list.addAll(Arrays.asList("兰州市", "嘉峪关市", "金昌市", "白银市", "天水市", "武威市", "张掖市", "平凉市", "酒泉市", "庆阳市", "定西市", "陇南市", "临夏回族自治州", "甘南藏族自治州"));
// 29. 青海省
list.addAll(Arrays.asList("西宁市", "海东市", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州"));
// 30. 宁夏回族自治区
list.addAll(Arrays.asList("银川市", "石嘴山市", "吴忠市", "固原市", "中卫市"));
// 31. 新疆维吾尔自治区
list.addAll(Arrays.asList("乌鲁木齐市", "克拉玛依市", "吐鲁番市", "哈密市", "昌吉回族自治州", "博尔塔拉蒙古自治州", "巴音郭楞蒙古自治州", "阿克苏地区", "克孜勒苏柯尔克孜自治州", "喀什地区", "和田地区", "伊犁哈萨克自治州", "塔城地区", "阿勒泰地区", "石河子市", "阿拉尔市", "图木舒克市", "五家渠市", "铁门关市"));
// 32. 香港特别行政区
list.addAll(Arrays.asList("香港"));
// 33. 澳门特别行政区
list.addAll(Arrays.asList("澳门"));
// 34. 台湾省
list.addAll(Arrays.asList("台北市", "新北市", "桃园市", "台中市", "台南市", "高雄市", "基隆市", "新竹市", "嘉义市", "新竹县", "苗栗县", "彰化县", "南投县", "云林县", "嘉义县", "屏东县", "宜兰县", "花莲县", "台东县", "澎湖县"));
return list;
}
逆地址解析
自己标点的数据
public static List<String> getLatAndLon() {
List<String> list = new ArrayList<>(100);
// 1. 北京市
list.addAll(Arrays.asList("116.297254,39.959831", "116.63358,39.962485","116.920463,39.66453","116.108107,39.618302"));
// 2. 天津市
list.addAll(Arrays.asList("117.298353,39.110591", "117.504747,39.184459","116.989623,39.039334","116.970076,39.396674"));
// 3. 上海市
list.addAll(Arrays.asList("121.471341,31.223825", "121.692684,31.297415","121.707057,31.394623","121.198831,31.002707"));
// 4. 重庆市
list.addAll(Arrays.asList("106.543489,29.564724", "106.724588,29.70436","106.716539,29.429422","106.513594,29.928471"));
// 5. 河北省
list.addAll(Arrays.asList("114.524521,38.062976", "115.0063,37.817554","114.711943,37.642203","115.545499,38.991999"));
// 6. 山西省
list.addAll(Arrays.asList("112.627442,38.018007", "113.758876,40.106066","110.815309,35.224449","112.50786,39.964645"));
// 7. 辽宁省
list.addAll(Arrays.asList("123.445053,41.566185", "125.137604,41.038984","123.909585,43.189312","120.432496,41.559276"));
// 8. 吉林省
list.addAll(Arrays.asList("125.353773,43.832041", "126.623186,43.845358","129.299993,43.041049","124.82945,45.14891"));
// 9. 黑龙江省
list.addAll(Arrays.asList("126.623186,45.783246", "130.357837,46.822411","130.311844,47.362688","129.750726,44.513968"));
// 10. 江苏省
list.addAll(Arrays.asList("119.117089,32.062964", "119.337856,33.892665","118.417992,33.83127", "120.000159,31.686168"));
// 11. 浙江省
list.addAll(Arrays.asList("120.264405,30.24526", "119.703287,29.072235", "118.912203,28.959031", "120.549563,28.073396"));
// 12. 安徽省
list.addAll(Arrays.asList("117.348433,31.813688", "118.452271,31.301681", "118.332688,29.676542", "116.888501,32.408727"));
// 13. 福建省
list.addAll(Arrays.asList("119.307745,26.022591", "118.636244,25.046098", "117.651988,26.238491", "117.596796,24.432803"));
// 14. 江西省
list.addAll(Arrays.asList("115.858252,28.61055", "116.373376,27.861039","113.917337,27.656453","114.98438,25.731322"));
// 15. 山东省
list.addAll(Arrays.asList("117.265645,36.551037", "118.001537,37.377781","120.503569,36.149201","121.441832,37.451157"));
// 16. 河南省
list.addAll(Arrays.asList("113.604583,34.711205", "114.009324,33.054075","112.583533,33.077312","111.51649,36.06709"));
// 17. 湖北省
list.addAll(Arrays.asList("114.418663,30.538336", "112.358166,31.173237","108.991461,30.171353","110.988143,32.423754"));
// 18. 湖南省
list.addAll(Arrays.asList("112.993448,28.146201", "112.643899,26.850141","113.085434,25.772358","109.497962,28.747861"));
// 19. 广东省
list.addAll(Arrays.asList("113.306202,23.196546", "113.379791,22.599956","112.147172,22.017895","110.270648,20.482894"));
// 20. 海南省
list.addAll(Arrays.asList("109.516359,18.49391", "110.252251,19.735578","109.093221,19.177123","110.105072,19.10718"));
// 21. 四川省
list.addAll(Arrays.asList("103.816235,30.581157", "103.779441,29.605253" ,"106.888584,31.736116","104.975265,29.267047"));
// 22. 贵州省
list.addAll(Arrays.asList("106.723008,26.67014", "106.263076,25.890602","106.263076,25.890602","108.41556,26.289326"));
// 23. 云南省
list.addAll(Arrays.asList("102.822781,24.686295", "103.889825,25.490513","102.142081,25.77405","104.110592,23.690556"));
// 24. 陕西省
list.addAll(Arrays.asList("109.02267,34.232222", "109.97933,33.880018","109.77696,38.297934","108.765108,36.833507"));
// 25. 甘肃省
list.addAll(Arrays.asList("104.073798,36.105386", "105.821541,34.537283","100.523119,38.717169","97.873909,39.775754"));
// 26. 青海省
list.addAll(Arrays.asList("101.755738,36.551994", "99.805625,35.955944","98.6098,37.701032","97.855511,38.515087"));
// 27. 台湾省
list.addAll(Arrays.asList("121.164886,24.619037", "120.355405,23.876797","120.3922,22.65293","120.337008,23.690556"));
// 28. 内蒙古自治区
list.addAll(Arrays.asList("118.773238,42.310369", "113.143665,41.347166","111.800662,40.832154","110.016124,40.804199"));
// 29. 广西壮族自治区
list.addAll(Arrays.asList("108.544341,23.028092", "107.440503,22.379431","109.243438,21.830803","106.355062,23.91063"));
// 30. 西藏自治区
/**
* 92.07876,31.389545
* Admin(中国,西藏自治区,那曲地区,那曲县,未知,district,CN,540000,542400,542421,-1,Location(92.0535,31.469643))
* AddressComponent{nation='中国', province='西藏自治区', city='那曲市', district='色尼区', street=''}
*/
list.addAll(Arrays.asList("94.32323,29.62133", "91.103703,29.717735"
// ,"92.07876,31.389545"
,"90.073455,29.073277"));
// 31. 宁夏回族自治区
list.addAll(Arrays.asList("106.483843,39.019214", "106.207884,38.486171","105.232827,37.408086","106.355062,35.985855"));
// 32. 新疆维吾尔自治区
list.addAll(Arrays.asList("87.51623,43.767755", "84.959006,45.385045","82.069912,43.006854","87.86506,47.636564"));
// 33. 香港特别行政区
list.addAll(Arrays.asList("114.13985,22.388687", "114.145599,22.494512", "113.960476,22.276359", "114.206037,22.467697"));
// 34. 澳门特别行政区
list.addAll(Arrays.asList("113.570108,22.16153",
// "113.594255,22.14948",
"113.569821,22.162601","113.566084,22.164208"));
return list;
}
GPT随机数据
public static List<String> getLatAndLonByChapGPT() {
List<String> list = new ArrayList<>(400);
// 1. 北京市
list.addAll(Arrays.asList("116.297254,39.959831", "116.63358,39.962485", "116.920463,39.66453", "116.108107,39.618302",
"116.411845,39.924091", "116.286968,39.900872", "116.491312,39.926778", "116.654146,39.932827",
"116.251925,39.994646", "116.200987,39.904211", "116.468432,39.948574", "116.395645,39.929986",
"116.248283,39.877843", "116.365798,39.980849", "116.490639,39.961455", "116.419146,39.927237",
"116.320587,39.935445", "116.493609,39.996014", "116.332256,39.894891", "116.389315,39.939716"));
// 2. 天津市
list.addAll(Arrays.asList("117.298353,39.110591", "117.504747,39.184459", "116.989623,39.039334", "116.970076,39.396674",
"117.190182,39.125596", "117.339451,39.09774", "117.221817,39.087764", "117.202814,39.141676",
"117.375481,39.123316", "117.497595,39.163487", "117.273536,39.183157", "117.328584,39.088227",
"117.40746,39.14393", "117.281195,39.201634", "117.158542,39.132702", "117.328518,39.09552",
"117.38282,39.16502", "117.150318,39.163586", "117.407137,39.142923", "117.266957,39.173178"));
// 3. 上海市
list.addAll(Arrays.asList("121.471341,31.223825", "121.692684,31.297415", "121.707057,31.394623", "121.198831,31.002707",
"121.473701,31.230416", "121.474514,31.232275", "121.476285,31.22718", "121.479424,31.23484",
"121.482337,31.229276", "121.485448,31.225953", "121.488123,31.231597", "121.490871,31.237449",
"121.493927,31.239368", "121.496689,31.234749", "121.499271,31.230697", "121.502247,31.226852",
"121.50512,31.222631", "121.507895,31.218827", "121.510668,31.21523", "121.513443,31.211437"));
// 4. 重庆市
list.addAll(Arrays.asList("106.543489,29.564724", "106.724588,29.70436", "106.716539,29.429422", "106.513594,29.928471",
"106.551556,29.563009", "106.552925,29.569575", "106.553947,29.573722", "106.556183,29.578891",
"106.557742,29.583991", "106.560086,29.588964", "106.561534,29.593847", "106.563071,29.598602",
"106.565298,29.603094", "106.566813,29.607643", "106.568144,29.61219", "106.570463,29.616688",
"106.572729,29.621129", "106.574857,29.625526", "106.576998,29.629855", "106.579111,29.634138"));
// 5. 河北省
list.addAll(Arrays.asList("114.51486,38.042307", "114.51486,37.887452", "114.51486,37.978665", "114.51486,38.067369",
"114.51486,38.158587", "114.51486,38.246814", "114.51486,38.334142", "114.51486,38.421613",
"114.51486,38.509221", "114.51486,38.596878", "114.51486,38.684529", "114.51486,38.772118",
"114.51486,38.859601", "114.51486,38.947008", "114.51486,39.034312", "114.51486,39.121498",
"114.51486,39.208543", "114.51486,39.295451", "114.51486,39.382232", "114.51486,39.46889"));
// 6. 山西省
list.addAll(Arrays.asList("112.548879,37.87059", "112.548879,37.923788", "112.548879,37.979005", "112.548879,38.033161",
"112.548879,38.087378", "112.548879,38.141595", "112.548879,38.195812",
// "112.548879,38.250029",
"112.548879,38.304246", "112.548879,38.358463", "112.548879,38.41268", "112.548879,38.466897",
"112.548879,38.521114", "112.548879,38.575331", "112.548879,38.629548", "112.548879,38.683765",
"112.548879,38.737982", "112.548879,38.792199", "112.548879,38.846416", "112.548879,38.900633"));
// 7. 内蒙古自治区
list.addAll(Arrays.asList("111.670801,40.818311", "111.670801,40.883181", "111.670801,40.948051", "111.670801,41.012921",
"111.670801,41.077791", "111.670801,41.142661", "111.670801,41.207531", "111.670801,41.272401",
"111.670801,41.337271", "111.670801,41.402141", "111.670801,41.467011", "111.670801,41.531881",
"111.670801,41.596751", "111.670801,41.661621", "111.670801,41.726491", "111.670801,41.791361",
"111.670801,41.856231", "111.670801,41.921101", "111.670801,41.985971", "111.670801,42.050841"));
// 8. 辽宁省
list.addAll(Arrays.asList("123.429096,41.796767", "123.429096,41.847113", "123.429096,41.897459", "123.429096,41.947805",
"123.429096,41.998151", "123.429096,42.048497", "123.429096,42.098843", "123.429096,42.149189",
"123.429096,42.199535", "123.429096,42.249881", "123.429096,42.300227", "123.429096,42.350573",
"123.429096,42.400919", "123.429096,42.451265", "123.429096,42.501611", "123.429096,42.551957",
"123.429096,42.602303", "123.429096,42.652649", "123.429096,42.702995", "123.429096,42.753341"));
// 9. 吉林省
list.addAll(Arrays.asList("125.3245,43.886841", "125.3245,43.936687", "125.3245,43.986533", "125.3245,44.036379",
"125.3245,44.086225", "125.3245,44.136071", "125.3245,44.185917", "125.3245,44.235763",
"125.3245,44.285609", "125.3245,44.335455", "125.3245,44.385301", "125.3245,44.435147",
"125.3245,44.484993", "125.3245,44.534839", "125.3245,44.584685", "125.3245,44.634531",
"125.3245,44.684377", "125.3245,44.734223", "125.3245,44.784069", "125.3245,44.833915"));
// 10. 黑龙江省
list.addAll(Arrays.asList("126.642464,45.756967", "126.632464,45.746967", "126.652464,45.766967", "126.662464,45.776967",
"126.672464,45.786967", "126.682464,45.796967", "126.692464,45.806967", "126.702464,45.816967",
"126.712464,45.826967", "126.722464,45.836967", "126.732464,45.846967", "126.742464,45.856967",
"126.752464,45.866967", "126.762464,45.876967", "126.772464,45.886967", "126.782464,45.896967",
"126.792464,45.906967", "126.802464,45.916967", "126.812464,45.926967", "126.822464,45.936967"));
// 11. 江苏省
list.addAll(Arrays.asList("118.796877,32.060255", "118.786877,32.050255", "118.806877,32.070255", "118.816877,32.080255",
"118.826877,32.090255", "118.836877,32.100255", "118.846877,32.110255", "118.856877,32.120255",
"118.866877,32.130255", "118.876877,32.140255", "118.886877,32.150255", "118.896877,32.160255",
"118.906877,32.170255", "118.916877,32.180255", "118.926877,32.190255", "118.936877,32.200255",
"118.946877,32.210255", "118.956877,32.220255", "118.966877,32.230255", "118.976877,32.240255"));
// 12. 浙江省
list.addAll(Arrays.asList("120.152792,30.267447", "120.142792,30.257447", "120.162792,30.277447", "120.172792,30.287447",
"120.182792,30.297447", "120.192792,30.307447", "120.202792,30.317447", "120.212792,30.327447",
"120.222792,30.337447", "120.232792,30.347447", "120.242792,30.357447", "120.252792,30.367447",
"120.262792,30.377447", "120.272792,30.387447", "120.282792,30.397447", "120.292792,30.407447",
"120.302792,30.417447", "120.312792,30.427447", "120.322792,30.437447", "120.332792,30.447447"));
// 13. 安徽省
list.addAll(Arrays.asList("117.283042,31.86119", "117.273042,31.85119", "117.293042,31.87119", "117.303042,31.88119",
"117.313042,31.89119", "117.323042,31.90119", "117.333042,31.91119", "117.343042,31.92119",
"117.353042,31.93119", "117.363042,31.94119", "117.373042,31.95119", "117.383042,31.96119",
"117.393042,31.97119", "117.403042,31.98119", "117.413042,31.99119", "117.423042,32.00119",
"117.433042,32.01119", "117.443042,32.02119", "117.453042,32.03119", "117.463042,32.04119"));
// 14. 福建省
list.addAll(Arrays.asList("119.306239,26.075302", "119.296239,26.065302", "119.316239,26.085302", "119.326239,26.095302",
"119.336239,26.105302", "119.346239,26.115302", "119.356239,26.125302", "119.366239,26.135302",
"119.376239,26.145302", "119.386239,26.155302", "119.396239,26.165302", "119.406239,26.175302",
"119.416239,26.185302", "119.426239,26.195302", "119.436239,26.205302", "119.446239,26.215302",
"119.456239,26.225302", "119.466239,26.235302", "119.476239,26.245302", "119.486239,26.255302"));
// 15. 江西省
list.addAll(Arrays.asList("115.858197,28.682892", "115.848197,28.672892", "115.868197,28.692892", "115.878197,28.702892",
"115.888197,28.712892", "115.898197,28.722892", "115.908197,28.732892", "115.918197,28.742892",
"115.928197,28.752892", "115.938197,28.762892", "115.948197,28.772892", "115.958197,28.782892",
"115.968197,28.792892", "115.978197,28.802892", "115.988197,28.812892", "115.998197,28.822892",
"116.008197,28.832892", "116.018197,28.842892", "116.028197,28.852892", "116.038197,28.862892"));
// 16. 山东省
list.addAll(Arrays.asList("117.000923,36.675807", "116.990923,36.665807", "117.010923,36.685807", "117.020923,36.695807",
"117.030923,36.705807", "117.040923,36.715807", "117.050923,36.725807", "117.060923,36.735807",
"117.070923,36.745807", "117.080923,36.755807", "117.090923,36.765807", "117.100923,36.775807",
"117.110923,36.785807", "117.120923,36.795807", "117.130923,36.805807", "117.140923,36.815807",
"117.150923,36.825807", "117.160923,36.835807", "117.170923,36.845807", "117.180923,36.855807"));
// 17. 河南省
list.addAll(Arrays.asList("113.665412,34.757975", "113.655412,34.747975", "113.675412,34.767975", "113.685412,34.777975",
"113.695412,34.787975", "113.705412,34.797975", "113.715412,34.807975", "113.725412,34.817975",
"113.735412,34.827975", "113.745412,34.837975", "113.755412,34.847975", "113.765412,34.857975",
"113.775412,34.867975", "113.785412,34.877975", "113.795412,34.887975", "113.805412,34.897975",
"113.815412,34.907975", "113.825412,34.917975", "113.835412,34.927975", "113.845412,34.937975"));
// 18. 湖北省
list.addAll(Arrays.asList("114.298572,30.584355", "114.288572,30.574355", "114.308572,30.594355", "114.318572,30.604355",
"114.328572,30.614355", "114.338572,30.624355", "114.348572,30.634355", "114.358572,30.644355",
"114.368572,30.654355", "114.378572,30.664355", "114.388572,30.674355", "114.398572,30.684355",
"114.408572,30.694355", "114.418572,30.704355", "114.428572,30.714355", "114.438572,30.724355",
"114.448572,30.734355", "114.458572,30.744355", "114.468572,30.754355", "114.478572,30.764355"));
// 19. 湖南省
list.addAll(Arrays.asList("112.982279,28.19409", "112.972279,28.18409", "112.992279,28.20409", "113.002279,28.21409",
"113.012279,28.22409", "113.022279,28.23409", "113.032279,28.24409", "113.042279,28.25409",
"113.052279,28.26409", "113.062279,28.27409", "113.072279,28.28409", "113.082279,28.29409",
"113.092279,28.30409", "113.102279,28.31409", "113.112279,28.32409", "113.122279,28.33409",
"113.132279,28.34409", "113.142279,28.35409", "113.152279,28.36409", "113.162279,28.37409"));
// 20. 广东省
list.addAll(Arrays.asList("113.280637,23.125178", "113.270637,23.115178", "113.290637,23.135178", "113.300637,23.145178",
"113.310637,23.155178", "113.320637,23.165178", "113.330637,23.175178", "113.340637,23.185178",
"113.350637,23.195178", "113.360637,23.205178", "113.370637,23.215178", "113.380637,23.225178",
"113.390637,23.235178", "113.400637,23.245178", "113.410637,23.255178", "113.420637,23.265178",
"113.430637,23.275178", "113.440637,23.285178", "113.450637,23.295178", "113.460637,23.305178"));
// 21. 广西壮族自治区
list.addAll(Arrays.asList("108.320004,22.82402", "108.310004,22.81402", "108.330004,22.83402", "108.340004,22.84402",
"108.350004,22.85402", "108.360004,22.86402", "108.370004,22.87402", "108.380004,22.88402",
"108.390004,22.89402", "108.400004,22.90402", "108.410004,22.91402", "108.420004,22.92402",
"108.430004,22.93402", "108.440004,22.94402", "108.450004,22.95402", "108.460004,22.96402",
"108.470004,22.97402", "108.480004,22.98402", "108.490004,22.99402", "108.500004,23.00402"));
// 22. 海南省
list.addAll(Arrays.asList("110.33119,20.031971", "110.32119,20.021971", "110.34119,20.041971", "110.35119,20.051971",
"110.36119,20.061971", "110.37119,20.071971", "110.38119,20.081971",
// "110.39119,20.091971",
// "110.40119,20.101971",
"110.41119,20.111971", "110.42119,20.121971", "110.43119,20.131971",
"110.44119,20.141971", "110.45119,20.151971", "110.46119,20.161971", "110.47119,20.171971",
"110.48119,20.181971", "110.49119,20.191971", "110.50119,20.201971", "110.51119,20.211971"));
// 23. 四川省
list.addAll(Arrays.asList("104.065735,30.659462", "104.055735,30.649462", "104.075735,30.669462", "104.085735,30.679462",
"104.095735,30.689462", "104.105735,30.699462", "104.115735,30.709462", "104.125735,30.719462",
"104.135735,30.729462", "104.145735,30.739462", "104.155735,30.749462", "104.165735,30.759462",
"104.175735,30.769462", "104.185735,30.779462", "104.195735,30.789462", "104.205735,30.799462",
"104.215735,30.809462", "104.225735,30.819462", "104.235735,30.829462", "104.245735,30.839462"));
// 24. 贵州省
list.addAll(Arrays.asList("106.713478,26.578343", "106.703478,26.568343", "106.723478,26.588343", "106.733478,26.598343",
"106.743478,26.608343", "106.753478,26.618343", "106.763478,26.628343", "106.773478,26.638343",
"106.783478,26.648343", "106.793478,26.658343", "106.803478,26.668343", "106.813478,26.678343",
"106.823478,26.688343", "106.833478,26.698343", "106.843478,26.708343", "106.853478,26.718343",
"106.863478,26.728343", "106.873478,26.738343", "106.883478,26.748343", "106.893478,26.758343"));
// 25. 云南省
list.addAll(Arrays.asList("102.712251,25.040609", "102.702251,25.030609", "102.722251,25.050609", "102.732251,25.060609",
"102.742251,25.070609", "102.752251,25.080609", "102.762251,25.090609", "102.772251,25.100609",
"102.782251,25.110609", "102.792251,25.120609", "102.802251,25.130609", "102.812251,25.140609",
"102.822251,25.150609", "102.832251,25.160609", "102.842251,25.170609", "102.852251,25.180609",
"102.862251,25.190609", "102.872251,25.200609", "102.882251,25.210609", "102.892251,25.220609"));
// 26. 陕西省
list.addAll(Arrays.asList("108.948024,34.263161", "108.938024,34.253161", "108.958024,34.273161", "108.968024,34.283161",
"108.978024,34.293161", "108.988024,34.303161", "108.998024,34.313161", "109.008024,34.323161",
"109.018024,34.333161", "109.028024,34.343161", "109.038024,34.353161", "109.048024,34.363161",
"109.058024,34.373161", "109.068024,34.383161", "109.078024,34.393161", "109.088024,34.403161",
"109.098024,34.413161", "109.108024,34.423161", "109.118024,34.433161", "109.128024,34.443161"));
// 27. 甘肃省
list.addAll(Arrays.asList("103.823557,36.058039", "103.813557,36.048039", "103.833557,36.068039", "103.843557,36.078039",
"103.853557,36.088039", "103.863557,36.098039", "103.873557,36.108039", "103.883557,36.118039",
"103.893557,36.128039", "103.903557,36.138039", "103.913557,36.148039", "103.923557,36.158039",
"103.933557,36.168039", "103.943557,36.178039", "103.953557,36.188039", "103.963557,36.198039",
"103.973557,36.208039", "103.983557,36.218039", "103.993557,36.228039", "104.003557,36.238039"));
// 28. 青海省
list.addAll(Arrays.asList("101.778916,36.623178", "101.768916,36.613178", "101.788916,36.633178", "101.798916,36.643178",
"101.808916,36.653178", "101.818916,36.663178", "101.828916,36.673178", "101.838916,36.683178",
"101.848916,36.693178", "101.858916,36.703178", "101.868916,36.713178", "101.878916,36.723178",
"101.888916,36.733178", "101.898916,36.743178", "101.908916,36.753178", "101.918916,36.763178",
"101.928916,36.773178", "101.938916,36.783178", "101.948916,36.793178", "101.958916,36.803178"));
// 29. 宁夏回族自治区
list.addAll(Arrays.asList("106.278179,38.46637", "106.268179,38.45637", "106.288179,38.47637", "106.298179,38.48637",
"106.308179,38.49637", "106.318179,38.50637", "106.328179,38.51637", "106.338179,38.52637",
"106.348179,38.53637", "106.358179,38.54637", "106.368179,38.55637", "106.378179,38.56637",
"106.388179,38.57637", "106.398179,38.58637", "106.408179,38.59637", "106.418179,38.60637",
"106.428179,38.61637", "106.438179,38.62637", "106.448179,38.63637", "106.458179,38.64637"));
// 30. 新疆维吾尔自治区
list.addAll(Arrays.asList("87.617733,43.792818", "87.607733,43.782818", "87.627733,43.802818", "87.637733,43.812818",
"87.647733,43.822818", "87.657733,43.832818", "87.667733,43.842818", "87.677733,43.852818",
"87.687733,43.862818", "87.697733,43.872818", "87.707733,43.882818", "87.717733,43.892818",
"87.727733,43.902818", "87.737733,43.912818", "87.747733,43.922818", "87.757733,43.932818",
"87.767733,43.942818", "87.777733,43.952818", "87.787733,43.962818", "87.797733,43.972818"));
// 31. 台湾省
list.addAll(Arrays.asList("121.520440,25.033482", "121.522860,25.032306", "121.525280,25.031130", "121.527700,25.029954",
"121.530120,25.028778", "121.532540,25.027602", "121.534960,25.026426", "121.537380,25.025250",
"121.539800,25.024074", "121.542220,25.022898", "121.544640,25.021722", "121.547060,25.020546",
"121.549480,25.019370", "121.551900,25.018194", "121.554320,25.017018", "121.556740,25.015842",
"121.559160,25.014666", "121.561580,25.013490", "121.564000,25.012314", "121.566420,25.011138"));
// 32. 香港特别行政区
list.addAll(Arrays.asList("114.175556,22.277222", "114.176944,22.276667", "114.178056,22.276111", "114.179167,22.275556",
"114.180278,22.275000", "114.181389,22.274444", "114.182500,22.273889", "114.183611,22.273333",
"114.184722,22.272778", "114.185833,22.272222", "114.186944,22.271667", "114.188056,22.271111",
"114.189167,22.270556", "114.190278,22.270000", "114.191389,22.269444", "114.192500,22.268889",
"114.193611,22.268333", "114.194722,22.267778", "114.195833,22.267222", "114.196944,22.266667"));
// 33. 澳门特别行政区
list.addAll(Arrays.asList("113.553528,22.213651", "113.557728,22.211252", "113.550963,22.209978", "113.552374,22.217654",
"113.555091,22.220233", "113.559128,22.19882","113.565812,22.192998","113.547702,22.192261",
"113.561356,22.199356","113.552229,22.20056","113.559344,22.19099", "113.555509,22.212304"));
// 34. 西藏自治区
list.addAll(Arrays.asList("91.132212,29.660361", "91.122212,29.650361", "91.142212,29.670361", "91.152212,29.680361",
"91.162212,29.690361", "91.172212,29.700361", "91.182212,29.710361", "91.192212,29.720361",
"91.202212,29.730361", "91.212212,29.740361", "91.222212,29.750361", "91.232212,29.760361",
"91.242212,29.770361", "91.252212,29.780361", "91.262212,29.790361", "91.272212,29.800361",
"91.282212,29.810361", "91.292212,29.820361", "91.302212,29.830361", "91.312212,29.840361"));
return list;
}
要求GPT的数据更加分散一些,且不能是在海上的数据
/**
* 要求GPT的数据更加分散一些,且不能是在海上的数据
* @return
*/
public static List<String> getLatAndLonByChapGPTTwo() {
List<String> list = new ArrayList<>();
// 1. 北京市
list.addAll(Arrays.asList("116.405285,39.904989", "116.407396,39.9042", "116.418757,39.915768", "116.441884,39.9219",
"116.370029,39.904211", "116.395645,39.929986", "116.388371,39.906217", "116.397452,39.909671",
"116.408198,39.904667", "116.421885,39.907288", "116.434358,39.908119", "116.456826,39.920129",
"116.47896,39.930701", "116.490778,39.935348", "116.492405,39.946057", "116.502888,39.958764",
"116.523829,39.96944", "116.545235,39.980545", "116.567925,39.991019", "116.581895,40.001605",
"116.60388,40.011236", "116.625452,40.020771", "116.644798,40.030461", "116.664254,40.040472",
"116.683978,40.049844", "116.703415,40.059333", "116.72234,40.069153", "116.741474,40.079043",
"116.759564,40.089112", "116.777845,40.099045"));
// 2. 天津市
list.addAll(Arrays.asList("117.190182,39.125596", "117.207644,39.145789", "117.22384,39.15697", "117.240928,39.168086",
"117.257998,39.179202", "117.275069,39.190318", "117.292139,39.201434", "117.309209,39.21255",
"117.326279,39.223666", "117.343349,39.234782", "117.360419,39.245898", "117.377489,39.257014",
"117.394559,39.26813", "117.411629,39.279246", "117.428699,39.290362", "117.445769,39.301478",
"117.462839,39.312594", "117.479909,39.32371", "117.496979,39.334826", "117.514049,39.345942",
// "117.531119,39.357058",
// "117.599399,39.401522",
"117.616469,39.412638", "117.633539,39.423754", "117.650609,39.43487",
"117.667679,39.445986", "117.684749,39.457102"));
// 3. 上海市
list.addAll(Arrays.asList("121.473701,31.230416", "121.481224,31.224569", "121.487896,31.229098", "121.495506,31.23484",
"121.504757,31.24281", "121.513733,31.250206", "121.52121,31.25758", "121.528903,31.265218",
"121.536347,31.272956", "121.544406,31.280548", "121.551116,31.28758", "121.558263,31.294808",
"121.566022,31.302735", "121.574136,31.311137", "121.582382,31.319763", "121.590075,31.3277",
"121.597145,31.33439", "121.604992,31.341137", "121.612789,31.347911", "121.620289,31.354678",
"121.694383,31.421071"
// , "121.702157,31.427959"
));
// 4. 重庆市
list.addAll(Arrays.asList("106.551557,29.56301", "106.561737,29.577755", "106.573217,29.591488", "106.585006,29.605565",
"106.596725,29.61918", "106.608554,29.633015", "106.620477,29.646535", "106.631712,29.659503",
"106.643122,29.672495", "106.654571,29.685531", "106.665761,29.698312", "106.677181,29.711216",
"106.688577,29.724024", "106.699517,29.73663", "106.710629,29.749299", "106.722306,29.761839",
"106.733722,29.774228", "106.745262,29.786828", "106.756771,29.799399", "106.768407,29.812032",
"106.779855,29.82442", "106.791293,29.836716", "106.802815,29.849162", "106.814159,29.86156",
"106.825785,29.873918", "106.837426,29.886313", "106.849067,29.898709", "106.860641,29.911046",
"106.87217,29.923317", "106.883729,29.935601"));
// 5. 河北省
list.addAll(Arrays.asList("114.514859,38.042306", "114.528735,38.032442", "114.543782,38.022492", "114.55972,38.012513",
"114.575607,38.0026", "114.591439,37.992667", "114.607177,37.982612", "114.623059,37.972648",
"114.639136,37.962475", "114.654808,37.952218", "114.670753,37.942086", "114.686724,37.931918",
"114.702695,37.921751", "114.718667,37.911584", "114.734638,37.901417", "114.750609,37.89125",
"114.76658,37.881083", "114.782551,37.870916", "114.798522,37.860749", "114.814493,37.850582",
"114.830464,37.840415", "114.846435,37.830248", "114.862406,37.820081", "114.878377,37.809914",
"114.894348,37.799747", "114.910319,37.78958", "114.92629,37.779413", "114.942261,37.769246",
"114.958232,37.759079", "114.974203,37.748912"));
// 6. 山西省
list.addAll(Arrays.asList("112.548879,37.87059", "112.560108,37.862178", "112.571217,37.853917", "112.582326,37.845657",
"112.593435,37.837397", "112.604544,37.829137", "112.615653,37.820877", "112.626762,37.812617",
"112.637871,37.804357", "112.64898,37.796097", "112.660089,37.787837", "112.671198,37.779577",
"112.682307,37.771317", "112.693416,37.763057", "112.704525,37.754797", "112.715634,37.746537",
"112.726743,37.738277", "112.737852,37.730017", "112.748961,37.721757", "112.76007,37.713497",
"112.771179,37.705237", "112.782288,37.696977", "112.793397,37.688717", "112.804506,37.680457",
"112.815615,37.672197", "112.826724,37.663937", "112.837833,37.655677", "112.848942,37.647417",
"112.860051,37.639157", "112.87116,37.630897"));
// 7. 内蒙古自治区
list.addAll(Arrays.asList("111.75199,40.84149", "111.766732,40.836141", "111.781474,40.830792", "111.796216,40.825443",
"111.810958,40.820094", "111.8257,40.814745", "111.840442,40.809396", "111.855184,40.804047",
"111.869926,40.798698", "111.884668,40.793349", "111.89941,40.788", "111.914152,40.782651",
"111.928894,40.777302", "111.943636,40.771953", "111.958378,40.766604", "111.97312,40.761255",
"111.987862,40.755906", "112.002604,40.750557", "112.017346,40.745208", "112.032088,40.739859",
"112.04683,40.73451", "112.061572,40.729161", "112.076314,40.723812", "112.091056,40.718463",
"112.105798,40.713114",
// "112.12054,40.707765",
"112.135282,40.702416", "112.150024,40.697067",
"112.164766,40.691718", "112.179508,40.686369"));
// 8. 辽宁省
list.addAll(Arrays.asList("123.429096,41.796767", "123.441253,41.788358", "123.45341,41.779949", "123.465567,41.77154",
"123.477724,41.763131", "123.489881,41.754722", "123.502038,41.746313", "123.514195,41.737904",
"123.526352,41.729495", "123.538509,41.721086", "123.550666,41.712677", "123.562823,41.704268",
"123.57498,41.695859", "123.587137,41.68745", "123.599294,41.679041", "123.611451,41.670632",
"123.623608,41.662223", "123.635765,41.653814", "123.647922,41.645405", "123.660079,41.636996",
"123.672236,41.628587", "123.684393,41.620178", "123.69655,41.611769", "123.708707,41.60336",
"123.720864,41.594951", "123.733021,41.586542", "123.745178,41.578133", "123.757335,41.569724",
"123.769492,41.561315", "123.781649,41.552906"));
// 9. 吉林省
list.addAll(Arrays.asList("125.3245,43.886841", "125.337784,43.876678", "125.351068,43.866515", "125.364352,43.856352",
"125.377636,43.846189", "125.39092,43.836026", "125.404204,43.825863", "125.417488,43.8157",
"125.430772,43.805537", "125.444056,43.795374", "125.45734,43.785211", "125.470624,43.775048",
"125.483908,43.764885", "125.497192,43.754722", "125.510476,43.744559", "125.52376,43.734396",
"125.537044,43.724233", "125.550328,43.71407", "125.563612,43.703907", "125.576896,43.693744",
"125.59018,43.683581", "125.603464,43.673418", "125.616748,43.663255", "125.630032,43.653092",
"125.643316,43.642929", "125.6566,43.632766", "125.669884,43.622603", "125.683168,43.61244",
"125.696452,43.602277", "125.709736,43.592114"));
// 10. 黑龙江省
list.addAll(Arrays.asList("126.642464,45.756967", "126.655789,45.746721", "126.669114,45.736475", "126.682439,45.726229",
"126.695764,45.715983", "126.709089,45.705737", "126.722414,45.695491", "126.735739,45.685245",
"126.749064,45.674999", "126.762389,45.664753", "126.775714,45.654507", "126.789039,45.644261",
"126.802364,45.634015", "126.815689,45.623769", "126.829014,45.613523", "126.842339,45.603277",
"126.855664,45.593031", "126.868989,45.582785", "126.882314,45.572539", "126.895639,45.562293",
"126.908964,45.552047", "126.922289,45.541801", "126.935614,45.531555", "126.948939,45.521309",
"126.962264,45.511063", "126.975589,45.500817", "126.988914,45.490571", "127.002239,45.480325",
"127.015564,45.470079", "127.028889,45.459833"));
// 11. 江苏省
list.addAll(Arrays.asList("118.796877,32.060255", "118.807521,32.049863", "118.818165,32.039471", "118.828809,32.029079",
"118.839453,32.018687", "118.850097,32.008295", "118.860741,31.997903", "118.871385,31.987511",
"118.882029,31.977119", "118.892673,31.966727", "118.903317,31.956335", "118.913961,31.945943",
"118.924605,31.935551", "118.935249,31.925159", "118.945893,31.914767", "118.956537,31.904375",
"118.967181,31.893983", "118.977825,31.883591", "118.988469,31.873199", "118.999113,31.862807",
"119.009757,31.852415", "119.020401,31.842023", "119.031045,31.831631", "119.041689,31.821239",
"119.052333,31.810847", "119.062977,31.800455", "119.073621,31.790063", "119.084265,31.779671",
"119.094909,31.769279", "119.105553,31.758887"));
// 12. 浙江省
list.addAll(Arrays.asList("120.152792,30.267447", "120.163586,30.257055", "120.17438,30.246663", "120.185174,30.236271",
"120.195968,30.225879", "120.206762,30.215487", "120.217556,30.205095", "120.22835,30.194703",
"120.239144,30.184311", "120.249938,30.173919", "120.260732,30.163527", "120.271526,30.153135",
"120.28232,30.142743", "120.293114,30.132351", "120.303908,30.121959", "120.314702,30.111567",
// "120.325496,30.101175",
"120.33629,30.090783", "120.347084,30.080391", "120.357878,30.069999",
"120.368672,30.059607", "120.379466,30.049215", "120.39026,30.038823", "120.401054,30.028431",
"120.411848,30.018039", "120.422642,30.007647", "120.433436,29.997255", "120.44423,29.986863",
"120.455024,29.976471", "120.465818,29.966079"));
// 13. 安徽省
list.addAll(Arrays.asList("117.283042,31.86119", "117.293865,31.850798", "117.304688,31.840406", "117.315511,31.830014",
"117.326334,31.819622", "117.337157,31.80923", "117.34798,31.798838", "117.358803,31.788446",
"117.369626,31.778054", "117.380449,31.767662", "117.391272,31.75727", "117.402095,31.746878",
"117.412918,31.736486", "117.423741,31.726094", "117.434564,31.715702", "117.445387,31.70531",
"117.45621,31.694918", "117.467033,31.684526", "117.477856,31.674134", "117.488679,31.663742",
"117.499502,31.65335", "117.510325,31.642958", "117.521148,31.632566", "117.531971,31.622174",
"117.542794,31.611782", "117.553617,31.60139", "117.56444,31.590998", "117.575263,31.580606",
"117.586086,31.570214", "117.596909,31.559822"));
// 14. 福建省
list.addAll(Arrays.asList("119.306239,26.075302", "119.31745,26.06491", "119.328661,26.054518", "119.339872,26.044126",
"119.351083,26.033734", "119.362294,26.023342", "119.373505,26.01295", "119.384716,26.002558",
"119.395927,25.992166", "119.407138,25.981774", "119.418349,25.971382", "119.42956,25.96099",
"119.440771,25.950598", "119.451982,25.940206", "119.463193,25.929814", "119.474404,25.919422",
"119.485615,25.90903", "119.496826,25.898638", "119.508037,25.888246", "119.519248,25.877854",
"119.530459,25.867462", "119.54167,25.85707", "119.552881,25.846678", "119.564092,25.836286",
"119.575303,25.825894", "119.586514,25.815502", "119.597725,25.80511", "119.608936,25.794718",
"119.620147,25.784326"
// , "119.631358,25.773934"
));
// 15. 江西省
list.addAll(Arrays.asList("115.858197,28.682892", "115.869025,28.6725", "115.879853,28.662108", "115.890681,28.651716",
"115.901509,28.641324", "115.912337,28.630932", "115.923165,28.62054", "115.933993,28.610148",
"115.944821,28.599756", "115.955649,28.589364", "115.966477,28.578972", "115.977305,28.56858",
"115.988133,28.558188", "115.998961,28.547796", "116.009789,28.537404", "116.020617,28.527012",
"116.031445,28.51662", "116.042273,28.506228", "116.053101,28.495836", "116.063929,28.485444",
"116.074757,28.475052", "116.085585,28.46466", "116.096413,28.454268", "116.107241,28.443876",
"116.118069,28.433484", "116.128897,28.423092", "116.139725,28.4127", "116.150553,28.402308",
"116.161381,28.391916", "116.172209,28.381524"));
// 16. 山东省
list.addAll(Arrays.asList("117.000923,36.675807", "117.013892,36.664414", "117.026861,36.653021", "117.03983,36.641628",
"117.052799,36.630235", "117.065768,36.618842", "117.078737,36.607449", "117.091706,36.596056",
"117.104675,36.584663", "117.117644,36.57327", "117.130613,36.561877", "117.143582,36.550484",
"117.156551,36.539091", "117.16952,36.527698", "117.182489,36.516305", "117.195458,36.504912",
"117.208427,36.493519", "117.221396,36.482126", "117.234365,36.470733", "117.247334,36.45934",
// "117.260303,36.447947",
"117.312179,36.402375", "117.325148,36.390982", "117.338117,36.379589", "117.351086,36.368196"
// ,"117.364055,36.356803"
));
// 17. 河南省
list.addAll(Arrays.asList("113.665412,34.757975", "113.677628,34.746582", "113.689844,34.735189", "113.70206,34.723796",
"113.714276,34.712403", "113.726492,34.70101", "113.738708,34.689617", "113.750924,34.678224",
"113.76314,34.666831", "113.775356,34.655438", "113.787572,34.644045", "113.799788,34.632652",
"113.812004,34.621259", "113.82422,34.609866", "113.836436,34.598473", "113.848652,34.58708",
"113.860868,34.575687", "113.873084,34.564294", "113.8853,34.552901", "113.897516,34.541508",
"113.909732,34.530115", "113.921948,34.518722", "113.934164,34.507329", "113.94638,34.495936",
"113.958596,34.484543", "113.970812,34.47315", "113.983028,34.461757", "113.995244,34.450364",
"114.00746,34.438971", "114.019676,34.427578"));
// 18. 湖北省
list.addAll(Arrays.asList("114.298572,30.584355", "114.309793,30.572962", "114.321014,30.561569", "114.332235,30.550176",
"114.343456,30.538783", "114.354677,30.52739", "114.365898,30.515997", "114.377119,30.504604",
"114.38834,30.493211", "114.399561,30.481818", "114.410782,30.470425", "114.422003,30.459032",
"114.433224,30.447639", "114.444445,30.436246", "114.455666,30.424853", "114.466887,30.41346",
"114.478108,30.402067", "114.489329,30.390674", "114.50055,30.379281", "114.511771,30.367888",
"114.522992,30.356495", "114.534213,30.345102", "114.545434,30.333709", "114.556655,30.322316",
"114.567876,30.310923", "114.579097,30.29953", "114.590318,30.288137", "114.601539,30.276744",
"114.61276,30.265351", "114.623981,30.253958"));
// 19. 湖南省
list.addAll(Arrays.asList("112.982279,28.19409", "112.992681,28.182697", "113.003083,28.171304", "113.013485,28.159911",
"113.023887,28.148518", "113.034289,28.137125", "113.044691,28.125732", "113.055093,28.114339",
"113.065495,28.102946", "113.075897,28.091553", "113.086299,28.08016", "113.096701,28.068767",
"113.107103,28.057374", "113.117505,28.045981", "113.127907,28.034588", "113.138309,28.023195",
"113.148711,28.011802", "113.159113,28.000409", "113.169515,27.989016", "113.179917,27.977623",
"113.190319,27.96623", "113.200721,27.954837", "113.211123,27.943444", "113.221525,27.932051",
"113.231927,27.920658", "113.242329,27.909265", "113.252731,27.897872", "113.263133,27.886479"
// ,"113.273535,27.875086"
));
// 20. 广东省
list.addAll(Arrays.asList("113.280637,23.125178", "113.291089,23.113785", "113.301541,23.102392", "113.311993,23.090999",
"113.322445,23.079606", "113.332897,23.068213", "113.343349,23.05682", "113.353801,23.045427",
"113.364253,23.034034", "113.374705,23.022641", "113.385157,23.011248", "113.395609,22.999855",
"113.406061,22.988462", "113.416513,22.977069", "113.426965,22.965676", "113.437417,22.954283",
"113.447869,22.94289", "113.458321,22.931497", "113.468773,22.920104", "113.479225,22.908711",
"113.489677,22.897318", "113.500129,22.885925", "113.510581,22.874532", "113.521033,22.863139",
"113.531485,22.851746", "113.541937,22.840353", "113.552389,22.82896", "113.562841,22.817567",
"113.573293,22.806174", "113.583745,22.794781"));
// 21. 广西壮族自治区
list.addAll(Arrays.asList("108.320004,22.82402", "108.330424,22.813622", "108.340844,22.803224", "108.351264,22.792826",
"108.361684,22.782428", "108.372104,22.77203", "108.382524,22.761632", "108.392944,22.751234",
"108.403364,22.740836", "108.413784,22.730438", "108.424204,22.72004", "108.434624,22.709642",
"108.445044,22.699244", "108.455464,22.688846", "108.465884,22.678448", "108.476304,22.66805",
"108.486724,22.657652", "108.497144,22.647254", "108.507564,22.636856", "108.517984,22.626458",
"108.528404,22.61606", "108.538824,22.605662", "108.549244,22.595264", "108.559664,22.584866",
"108.570084,22.574468", "108.580504,22.56407", "108.590924,22.553672", "108.601344,22.543274",
"108.611764,22.532876", "108.622184,22.522478"));
// 22. 海南省
list.addAll(Arrays.asList("110.33119,20.031971", "110.341458,20.021573", "110.351726,20.011175", "110.361994,20.000777",
"110.372262,19.990379", "110.38253,19.979981", "110.392798,19.969583", "110.403066,19.959185",
"110.413334,19.948787", "110.423602,19.938389", "110.43387,19.927991", "110.444138,19.917593",
"110.454406,19.907195", "110.464674,19.896797", "110.474942,19.886399", "110.48521,19.876001",
"110.495478,19.865603", "110.505746,19.855205", "110.516014,19.844807", "110.526282,19.834409",
"110.53655,19.824011", "110.546818,19.813613", "110.557086,19.803215", "110.567354,19.792817",
"110.577622,19.782419", "110.58789,19.772021", "110.598158,19.761623", "110.608426,19.751225",
"110.618694,19.740827", "110.628962,19.730429"));
// 23. 四川省
list.addAll(Arrays.asList("104.065735,30.659462", "104.076105,30.648184", "104.086475,30.636906", "104.096845,30.625628",
"104.107215,30.61435", "104.117585,30.603072", "104.127955,30.591794", "104.138325,30.580516",
"104.148695,30.569238", "104.159065,30.55796", "104.169435,30.546682", "104.179805,30.535404",
"104.190175,30.524126", "104.200545,30.512848", "104.210915,30.50157", "104.221285,30.490292",
"104.231655,30.479014", "104.242025,30.467736", "104.252395,30.456458", "104.262765,30.44518",
"104.273135,30.433902", "104.283505,30.422624", "104.293875,30.411346", "104.304245,30.400068",
"104.314615,30.38879", "104.324985,30.377512", "104.335355,30.366234", "104.345725,30.354956",
"104.356095,30.343678", "104.366465,30.3324"));
// 24. 贵州省
list.addAll(Arrays.asList("106.713478,26.578343", "106.724542,26.567965", "106.735606,26.557587", "106.74667,26.547209",
"106.757734,26.536831", "106.768798,26.526453", "106.779862,26.516075", "106.790926,26.505697",
"106.80199,26.495319", "106.813054,26.484941", "106.824118,26.474563", "106.835182,26.464185",
"106.846246,26.453807", "106.85731,26.443429", "106.868374,26.433051", "106.879438,26.422673",
"106.890502,26.412295", "106.901566,26.401917", "106.91263,26.391539", "106.923694,26.381161",
"106.934758,26.370783", "106.945822,26.360405", "106.956886,26.350027", "106.96795,26.339649",
"106.979014,26.329271", "106.990078,26.318893", "107.001142,26.308515", "107.012206,26.298137",
"107.02327,26.287759", "107.034334,26.277381"));
// 25. 云南省
list.addAll(Arrays.asList("102.712251,25.040609", "102.722491,25.030341", "102.732731,25.020073", "102.742971,25.009805",
"102.753211,24.999537", "102.763451,24.989269", "102.773691,24.979001", "102.783931,24.968733",
"102.794171,24.958465", "102.804411,24.948197", "102.814651,24.937929", "102.824891,24.927661",
"102.835131,24.917393", "102.845371,24.907125", "102.855611,24.896857", "102.865851,24.886589",
"102.876091,24.876321", "102.886331,24.866053", "102.896571,24.855785", "102.906811,24.845517",
"102.917051,24.835249", "102.927291,24.824981", "102.937531,24.814713", "102.947771,24.804445",
"102.958011,24.794177", "102.968251,24.783909", "102.978491,24.773641", "102.988731,24.763373",
"102.998971,24.753105", "103.009211,24.742837"));
// 26. 陕西省
list.addAll(Arrays.asList("108.948024,34.263161", "108.959248,34.252893", "108.970472,34.242625", "108.981696,34.232357",
"108.99292,34.222089", "109.004144,34.211821", "109.015368,34.201553", "109.026592,34.191285",
"109.037816,34.181017", "109.04904,34.170749", "109.060264,34.160481", "109.071488,34.150213",
"109.082712,34.139945", "109.093936,34.129677", "109.10516,34.119409", "109.116384,34.109141",
"109.127608,34.098873", "109.138832,34.088605", "109.150056,34.078337", "109.16128,34.068069",
"109.172504,34.057801", "109.183728,34.047533", "109.194952,34.037265", "109.206176,34.026997",
"109.2174,34.016729", "109.228624,34.006461", "109.239848,33.996193", "109.251072,33.985925",
"109.262296,33.975657", "109.27352,33.965389"));
// 27. 甘肃省
list.addAll(Arrays.asList("103.823557,36.058039", "103.83478,36.047771", "103.846003,36.037503", "103.857226,36.027235",
"103.868449,36.016967", "103.879672,36.006699", "103.890895,35.996431", "103.902118,35.986163",
"103.913341,35.975895", "103.924564,35.965627", "103.935787,35.955359", "103.94701,35.945091",
"103.958233,35.934823", "103.969456,35.924555", "103.980679,35.914287", "103.991902,35.904019",
"104.003125,35.893751", "104.014348,35.883483", "104.025571,35.873215", "104.036794,35.862947",
"104.048017,35.852679", "104.05924,35.842411", "104.070463,35.832143", "104.081686,35.821875",
"104.092909,35.811607", "104.104132,35.801339", "104.115355,35.791071", "104.126578,35.780803",
"104.137801,35.770535", "104.149024,35.760267"));
// 28. 青海省
list.addAll(Arrays.asList("101.778916,36.623178", "101.789563,36.613841", "101.80021,36.604504", "101.810857,36.595167",
"101.821504,36.58583", "101.832151,36.576493", "101.842798,36.567156", "101.853445,36.557819",
"101.864092,36.548482", "101.874739,36.539145", "101.885386,36.529808", "101.896033,36.520471",
"101.90668,36.511134", "101.917327,36.501797", "101.927974,36.49246", "101.938621,36.483123",
"101.949268,36.473786", "101.959915,36.464449", "101.970562,36.455112", "101.981209,36.445775",
"101.991856,36.436438", "102.002503,36.427101", "102.01315,36.417764", "102.023797,36.408427",
"102.034444,36.39909", "102.045091,36.389753", "102.055738,36.380416", "102.066385,36.371079",
"102.077032,36.361742", "102.087679,36.352405"));
// 29. 宁夏回族自治区
list.addAll(Arrays.asList("106.278179,38.46637", "106.289372,38.456033", "106.300565,38.445696", "106.311758,38.435359",
"106.322951,38.425022", "106.334144,38.414685", "106.345337,38.404348", "106.35653,38.394011",
"106.367723,38.383674", "106.378916,38.373337", "106.390109,38.363", "106.401302,38.352663",
"106.412495,38.342326", "106.423688,38.331989", "106.434881,38.321652", "106.446074,38.311315",
"106.457267,38.300978", "106.46846,38.290641", "106.479653,38.280304", "106.490846,38.269967",
"106.502039,38.25963", "106.513232,38.249293", "106.524425,38.238956", "106.535618,38.228619",
"106.546811,38.218282", "106.558004,38.207945", "106.569197,38.197608", "106.58039,38.187271",
"106.591583,38.176934", "106.602776,38.166597"));
// 30. 新疆维吾尔自治区
list.addAll(Arrays.asList("87.617733,43.792818", "87.630244,43.781131", "87.642755,43.769444", "87.655266,43.757757",
"87.667777,43.74607", "87.680288,43.734383", "87.692799,43.722696", "87.70531,43.711009",
"87.717821,43.699322", "87.730332,43.687635", "87.742843,43.675948", "87.755354,43.664261",
"87.767865,43.652574", "87.780376,43.640887", "87.792887,43.6292", "87.805398,43.617513",
"87.817909,43.605826", "87.83042,43.594139", "87.842931,43.582452", "87.855442,43.570765",
"87.867953,43.559078", "87.880464,43.547391", "87.892975,43.535704", "87.905486,43.524017",
"87.917997,43.51233", "87.930508,43.500643", "87.943019,43.488956", "87.95553,43.477269",
"87.968041,43.465582", "87.980552,43.453895"));
// 31. 台湾省
list.addAll(Arrays.asList("121.509062,25.044332", "121.520432,25.033148", "121.531802,25.021964", "121.543172,25.01078",
"121.554542,24.999596", "121.565912,24.988412", "121.577282,24.977228",
// "121.588652,24.966044",
"121.600022,24.95486", "121.611392,24.943676", "121.622762,24.932492", "121.634132,24.921308",
"121.645502,24.910124", "121.656872,24.89894", "121.668242,24.887756", "121.679612,24.876572",
"121.690982,24.865388", "121.702352,24.854204",
// "121.713722,24.84302",
"121.725092,24.831836", "121.736462,24.820652", "121.747832,24.809468", "121.759202,24.798284", "121.770572,24.7871",
"121.781942,24.775916", "121.793312,24.764732", "121.804682,24.753548", "121.816052,24.742364"
// , "121.827422,24.73118"
));
// 32. 香港特别行政区
list.addAll(Arrays.asList("114.173355,22.320048", "114.183488,22.308964", "114.193621,22.29788", "114.203754,22.286796",
"114.213887,22.275712", "114.22402,22.264628", "114.234153,22.253544", "114.244286,22.24246",
"114.254419,22.231376"
// , "114.264552,22.220292"
));
// 33. 澳门特别行政区
list.addAll(Arrays.asList("113.54909,22.198951", "113.55509,22.198951", "113.56109,22.198951", "113.56709,22.198951",
"113.57309,22.198951", "113.57909,22.198951"
// , "113.58509,22.198951"
));
// 34. 西藏自治区
list.addAll(Arrays.asList("91.132212,29.660361", "91.142512,29.650761", "91.152812,29.641161", "91.163112,29.631561",
"91.173412,29.621961", "91.183712,29.612361", "91.194012,29.602761", "91.204312,29.593161",
"91.214612,29.583561", "91.224912,29.573961", "91.235212,29.564361", "91.245512,29.554761",
"91.255812,29.545161", "91.266112,29.535561",
// "91.276412,29.525961",
"91.286712,29.516361",
"91.297012,29.506761", "91.307312,29.497161", "91.317612,29.487561", "91.327912,29.477961",
"91.338212,29.468361", "91.348512,29.458761", "91.358812,29.449161", "91.369112,29.439561",
"91.379412,29.429961", "91.389712,29.420361", "91.400012,29.410761", "91.410312,29.401161",
"91.420612,29.391561", "91.430912,29.381961"));
return list;
}