java 數據庫保存 高德地圖 行政區域

大家做開發過程中遇到 區域選擇的問題 某些項目 需要選擇區域  最好用高德地圖的區域就很全面 但是存儲到數據庫是個問題

這裏就把自己開發的代碼分享給大家

首先 高德地圖 獲取區域的文檔

選擇 自己需要的數據 點運行  查看網絡 返回的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";
	}
	

 

寫的代碼 不算完美 正確做法 寫方法 遞歸解析 如果您有更好的方法 歡迎在下方評論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章