大家做開發過程中遇到 區域選擇的問題 某些項目 需要選擇區域 最好用高德地圖的區域就很全面 但是存儲到數據庫是個問題
這裏就把自己開發的代碼分享給大家
首先 高德地圖 獲取區域的文檔
選擇 自己需要的數據 點運行 查看網絡 返回的json數據 複製下來如下
複製下來的JSON 數據如下
{
"status":"1",
"info":"OK",
"infocode":"10000",
"count":"1",
"suggestion":{
"keywords":[
],
"cities":[
]
},
"districts":[
{
"citycode":[
],
"adcode":"530000",
"name":"雲南省",
"center":"102.712251,25.040609",
"level":"province",
"districts":[
{
"citycode":"0870",
"adcode":"530600",
"name":"昭通市",
"center":"103.717216,27.336999",
"level":"city",
"districts":[
]
},
{
"citycode":"0874",
"adcode":"530300",
"name":"曲靖市",
"center":"103.797851,25.501557",
"level":"city",
"districts":[
]
},
{
"citycode":"0873",
"adcode":"532500",
"name":"紅河哈尼族彝族自治州",
"center":"103.384182,23.366775",
"level":"city",
"districts":[
]
},
{
"citycode":"0886",
"adcode":"533300",
"name":"怒江傈僳族自治州",
"center":"98.854304,25.850949",
"level":"city",
"districts":[
]
},
{
"citycode":"0691",
"adcode":"532800",
"name":"西雙版納傣族自治州",
"center":"100.797941,22.001724",
"level":"city",
"districts":[
]
},
{
"citycode":"0877",
"adcode":"530400",
"name":"玉溪市",
"center":"102.543907,24.350461",
"level":"city",
"districts":[
]
},
{
"citycode":"0872",
"adcode":"532900",
"name":"大理白族自治州",
"center":"100.225668,25.589449",
"level":"city",
"districts":[
]
},
{
"citycode":"0888",
"adcode":"530700",
"name":"麗江市",
"center":"100.233026,26.872108",
"level":"city",
"districts":[
]
},
{
"citycode":"0876",
"adcode":"532600",
"name":"文山壯族苗族自治州",
"center":"104.24401,23.36951",
"level":"city",
"districts":[
]
},
{
"citycode":"0887",
"adcode":"533400",
"name":"迪慶藏族自治州",
"center":"99.706463,27.826853",
"level":"city",
"districts":[
]
},
{
"citycode":"0875",
"adcode":"530500",
"name":"保山市",
"center":"99.167133,25.111802",
"level":"city",
"districts":[
]
},
{
"citycode":"0879",
"adcode":"530800",
"name":"普洱市",
"center":"100.972344,22.777321",
"level":"city",
"districts":[
]
},
{
"citycode":"0871",
"adcode":"530100",
"name":"昆明市",
"center":"102.712251,25.040609",
"level":"city",
"districts":[
]
},
{
"citycode":"0878",
"adcode":"532300",
"name":"楚雄彝族自治州",
"center":"101.546046,25.041988",
"level":"city",
"districts":[
]
},
{
"citycode":"0883",
"adcode":"530900",
"name":"臨滄市",
"center":"100.08697,23.886567",
"level":"city",
"districts":[
]
},
{
"citycode":"0692",
"adcode":"533100",
"name":"德宏傣族景頗族自治州",
"center":"98.578363,24.436694",
"level":"city",
"districts":[
]
}
]
}
]
}
這裏涉及到json解析到對象 用的是fastjson
自己搜索 json 轉java
複製粘貼json 下載 生成的Java bean
命名 Amap
然後寫一個方法 調用運行 插入數據庫
@GetMapping("/initData")
@ResponseBody
public String initData()
{
String data ="{\n" +
" \"status\":\"1\",\n" +
" \"info\":\"OK\",\n" +
" \"infocode\":\"10000\",\n" +
" \"count\":\"1\",\n" +
" \"suggestion\":{\n" +
" \"keywords\":[\n" +
"\n" +
" ],\n" +
" \"cities\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" \"districts\":[\n" +
" {\n" +
" \"citycode\":[\n" +
"\n" +
" ],\n" +
" \"adcode\":\"530000\",\n" +
" \"name\":\"雲南省\",\n" +
" \"center\":\"102.712251,25.040609\",\n" +
" \"level\":\"province\",\n" +
" \"districts\":[\n" +
" {\n" +
" \"citycode\":\"0870\",\n" +
" \"adcode\":\"530600\",\n" +
" \"name\":\"昭通市\",\n" +
" \"center\":\"103.717216,27.336999\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0874\",\n" +
" \"adcode\":\"530300\",\n" +
" \"name\":\"曲靖市\",\n" +
" \"center\":\"103.797851,25.501557\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0873\",\n" +
" \"adcode\":\"532500\",\n" +
" \"name\":\"紅河哈尼族彝族自治州\",\n" +
" \"center\":\"103.384182,23.366775\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0886\",\n" +
" \"adcode\":\"533300\",\n" +
" \"name\":\"怒江傈僳族自治州\",\n" +
" \"center\":\"98.854304,25.850949\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0691\",\n" +
" \"adcode\":\"532800\",\n" +
" \"name\":\"西雙版納傣族自治州\",\n" +
" \"center\":\"100.797941,22.001724\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0877\",\n" +
" \"adcode\":\"530400\",\n" +
" \"name\":\"玉溪市\",\n" +
" \"center\":\"102.543907,24.350461\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0872\",\n" +
" \"adcode\":\"532900\",\n" +
" \"name\":\"大理白族自治州\",\n" +
" \"center\":\"100.225668,25.589449\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0888\",\n" +
" \"adcode\":\"530700\",\n" +
" \"name\":\"麗江市\",\n" +
" \"center\":\"100.233026,26.872108\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0876\",\n" +
" \"adcode\":\"532600\",\n" +
" \"name\":\"文山壯族苗族自治州\",\n" +
" \"center\":\"104.24401,23.36951\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0887\",\n" +
" \"adcode\":\"533400\",\n" +
" \"name\":\"迪慶藏族自治州\",\n" +
" \"center\":\"99.706463,27.826853\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0875\",\n" +
" \"adcode\":\"530500\",\n" +
" \"name\":\"保山市\",\n" +
" \"center\":\"99.167133,25.111802\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0879\",\n" +
" \"adcode\":\"530800\",\n" +
" \"name\":\"普洱市\",\n" +
" \"center\":\"100.972344,22.777321\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0871\",\n" +
" \"adcode\":\"530100\",\n" +
" \"name\":\"昆明市\",\n" +
" \"center\":\"102.712251,25.040609\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0878\",\n" +
" \"adcode\":\"532300\",\n" +
" \"name\":\"楚雄彝族自治州\",\n" +
" \"center\":\"101.546046,25.041988\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0883\",\n" +
" \"adcode\":\"530900\",\n" +
" \"name\":\"臨滄市\",\n" +
" \"center\":\"100.08697,23.886567\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"citycode\":\"0692\",\n" +
" \"adcode\":\"533100\",\n" +
" \"name\":\"德宏傣族景頗族自治州\",\n" +
" \"center\":\"98.578363,24.436694\",\n" +
" \"level\":\"city\",\n" +
" \"districts\":[\n" +
"\n" +
" ]\n" +
" }\n" +
" ]\n" +
" }\n" +
" ]\n" +
"}";
Amap amap = JSON.parseObject(data,new TypeReference<Amap>() {});
List<Area> list = new ArrayList<>();
amap.getDistricts().forEach(districts -> {
Area area =new Area();
area.setId(IdGen.uuid());
area.setParentId("0");
area.setAdcode(districts.getAdcode());
area.setName(districts.getName());
area.setLevel(districts.getLevel());
list.add(area);
if(districts.getDistricts()!=null && districts.getDistricts().size()>0){
districts.getDistricts().forEach(d->{
Area a =new Area();
a.setId(IdGen.uuid());
a.setParentId(area.getId());
a.setAncestors("0,"+area.getId());
a.setCitycode(d.getCitycode().get(0));
a.setAdcode(d.getAdcode());
a.setName(d.getName());
a.setLevel(d.getLevel());
list.add(a);
});
}
});
list.forEach(area -> {
this.areaService.insertArea(area);
});
return "success";
}
寫的代碼 不算完美 正確做法 寫方法 遞歸解析 如果您有更好的方法 歡迎在下方評論