java 获取GeoJSON结构的json文件

java 获取GeoJSON结构的json文件

摘要:在使用echarts地图时,如果要开发地图按照行政区划下钻的功能,则必须要引用对应行政区划的json文件才可以,但是绝大多是GeoJSON格式的json文件要么是收费、要么是需要手动挨个下载,作为程序猿这肯定不能忍(赖得挨个下载🤣🤣),于是花费半小时搞个小小的工具类(开发半小时使使用一分钟),然后再利用一分钟搞定省市县三级行政区划对应的json文件并存放到对应的目录里。废话不多说,先上效果图😁😁
根目录下一级目录
在这里插入图片描述
在这里插入图片描述
简单粗暴,直接上代码

package com.zdww.tpgg.common.file;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/**
 * @ClassName GeoJsonUtil
 * @Description 根据阿里 DataV.GeoAtlas 接口中获取省、市、县 对应GenJSON格式json文件
 * @Author yangwm
 * @Date 2021/12/30 21:43
 * @Version 1.0
 */
public class GeoJsonUtil {

    /**
     * 利用http请求获取json字符串并存储到对应文件夹中
     * @param path  存放文件的目录  /download
     * @param parentFileName 存放文件的上级文件夹,如 县级对应市级的名称
     * @param fileName  存放文件的名字
     * @param code  行政区划段编码 截取前六位,如 513300 510000
     * @throws IOException
     */
    public static void doGet(String path,String parentFileName,String fileName,String code) throws IOException {
        //文件存储的文件夹
        String parentPath = "/"+path+"/"+parentFileName;
        //文件存储的位置
        String filePath = parentPath+"/"+fileName+".json";
        //创建文件
        File parentFile = new File(parentPath);
        File file = new File(filePath);
        //判断父级文件夹不存在,直接创建
        if(!parentFile.isDirectory()){
            parentFile.mkdirs();
        }
        //判断文件不存在,直接创建
        if(!file.exists()) {
            file.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
        }
        //声明连接
        CloseableHttpClient client = HttpClients.createDefault();
        // 要调用的接口方法
        String url = "https://geo.datav.aliyun.com/areas_v3/bound/"+code+".json";
        //get请求
        HttpGet post = new HttpGet(url);
        try {
            HttpResponse res = client.execute(post);
            //获取返回内容
            String response = EntityUtils.toString(res.getEntity());
            System.out.println(response);
            //输出
            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(response);
            bw.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

需要引入maven

<dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.12</version>
      <scope>compile</scope>
 </dependency>
  1. 这个接口是基于(阿里云数据可视化平台)的,要感谢阿里的开放接口。
  2. 请求的基本原理是基于Java的http请求。
  3. 代码中文件流处理、文件目录处理都有很大的完善空间,欢迎小伙伴们拍砖。

***祝君成功!!!!**❤❤❤❤❤❤❤❤❤❤❤❤
------------------------分割线----------------------------
晚上加完班回去休息了下脑子,今早上班想了想,干脆一不做二不休(以后偷懒方便 )*于是又动了手指,将工具类封装成jar包,这里就无私奉献给大家伙
😃😃😃😃😃😃😃

自助地址:https://pan.baidu.com/s/1Q4CKo6k_f_1V5xKC2qeudQ,提取码:atqx

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值