| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/controller/TownsGeoJsonController.java | ●●●●● patch | view | raw | blame | history | |
| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/entity/TownsGeoJson.java | ●●●●● patch | view | raw | blame | history | |
| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/mapper/TownsGeoJsonMapper.java | ●●●●● patch | view | raw | blame | history | |
| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/mapper/TownsGeoJsonMapper.xml | ●●●●● patch | view | raw | blame | history | |
| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/service/ITownsGeoJsonService.java | ●●●●● patch | view | raw | blame | history | |
| skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/service/impl/TownsGeoJsonServiceImpl.java | ●●●●● patch | view | raw | blame | history |
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/controller/TownsGeoJsonController.java
New file @@ -0,0 +1,121 @@ package cn.gistack.sm.geoJson.controller; import cn.gistack.sm.geoJson.entity.TownsGeoJson; import cn.gistack.sm.geoJson.service.ITownsGeoJsonService; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringUtil; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/6/13 19:50 */ @Slf4j @Api(tags="乡镇geoJson数据") @RestController @RequestMapping("/town/geoJson") @AllArgsConstructor public class TownsGeoJsonController extends BladeController { private ITownsGeoJsonService townsGeoJsonService; @GetMapping(value = "/findGeoJsonByCode") public R findGeoJsonByCode(@ApiIgnore @RequestParam Map<String, Object> obj) { QueryWrapper<TownsGeoJson> queryWrapper = new QueryWrapper<>(); if (null == obj.get("level") || null == obj.get("code")) return R.fail("参数不正确"); String level = obj.get("level").toString(); String code = obj.get("code").toString(); Map<String, Object> ret = new HashMap<>(); ret.put("type", "FeatureCollection"); if (level.equals("1")) { ret.put("features", townsGeoJsonService.list()); } else if (level.equals("2")) { code = code.substring(0,4); ret.put("features", townsGeoJsonService.list(queryWrapper.lambda().likeRight(TownsGeoJson::getCityId,code))); } else if (level.equals("3")) { code = code.substring(0,6); ret.put("features", townsGeoJsonService.list(queryWrapper.lambda().likeRight(TownsGeoJson::getCountyId,code))); } else { ret.put("features", townsGeoJsonService.list(queryWrapper.lambda().eq(TownsGeoJson::getAreaId,code))); } return R.data(ret); } /** * 本地初始化执行一次就可以 * @return */ // @GetMapping(value = "/initData") public R queryPageList() { initData(); return R.data(200, null, "初始化成功"); } private void initData() { //解析JSON文件的内容 try { // 流读 File file=new File("D:\\汇图信息\\湖北水利研究院\\开发文档\\geojson\\towns.json"); FileReader fr=new FileReader(file); char[] cbuf=new char[5]; int len; StringBuffer sb = new StringBuffer(); while((len=fr.read(cbuf))!=-1){ String str=new String(cbuf,0,len); sb.append(str); } // 关闭流 fr.close(); // 开始操作json JSONObject obj = JSONObject.parseObject(sb.toString()); // //删除除features以外其它对象,方便下面所需的geojson字符串 obj.remove("type"); obj.remove("name"); obj.remove("crs"); JSONArray array = obj.getJSONArray("features"); for (int i = 0; i < array.size(); i++) { JSONObject feature = array.getJSONObject(i); TownsGeoJson townsGeoJson = new TownsGeoJson(); townsGeoJson.setName(feature.getJSONObject("properties").get("NAME").toString()); townsGeoJson.setAreaId(feature.getJSONObject("properties").get("area_id").toString()); townsGeoJson.setCityId(feature.getJSONObject("properties").get("city_id").toString()); townsGeoJson.setCityName(feature.getJSONObject("properties").get("city_nm").toString()); townsGeoJson.setCountyId(feature.getJSONObject("properties").get("county_id").toString()); townsGeoJson.setCountyName(feature.getJSONObject("properties").get("county_nm").toString()); townsGeoJson.setGeometry(feature.getJSONObject("geometry")); townsGeoJson.setProperties(feature.getJSONObject("properties")); townsGeoJsonService.save(townsGeoJson); } } catch (IOException e) { e.printStackTrace(); } } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/entity/TownsGeoJson.java
New file @@ -0,0 +1,52 @@ package cn.gistack.sm.geoJson.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.springblade.core.mp.base.BaseEntity; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: 乡镇geoJson对象 * @USER: aix * @DATE: 2023/6/13 18:59 */ @Data @TableName(value = "sm_towns_geo_json",autoResultMap = true) @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="乡镇geoJson对象", description="乡镇geoJson对象") public class TownsGeoJson extends BaseEntity { @ApiModelProperty("市") private String cityId; @ApiModelProperty("市名称") private String cityName; @ApiModelProperty("区县") private String countyId; @ApiModelProperty("区县名称") private String countyName; @ApiModelProperty("乡") private String areaId; @ApiModelProperty("乡名称") private String name; private String type = "Feature"; @TableField(typeHandler = FastjsonTypeHandler.class) private Object geometry; @TableField(typeHandler = FastjsonTypeHandler.class) private Object properties; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/mapper/TownsGeoJsonMapper.java
New file @@ -0,0 +1,13 @@ package cn.gistack.sm.geoJson.mapper; import cn.gistack.sm.geoJson.entity.TownsGeoJson; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/6/13 19:14 */ public interface TownsGeoJsonMapper extends BaseMapper<TownsGeoJson> { } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/mapper/TownsGeoJsonMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="cn.gistack.sm.geoJson.mapper.TownsGeoJsonMapper"> <!--namespace根据自己需要创建的的mapper的路径和名称填写--> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/service/ITownsGeoJsonService.java
New file @@ -0,0 +1,13 @@ package cn.gistack.sm.geoJson.service; import cn.gistack.sm.geoJson.entity.TownsGeoJson; import org.springblade.core.mp.base.BaseService; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/6/13 19:16 */ public interface ITownsGeoJsonService extends BaseService<TownsGeoJson> { } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/geoJson/service/impl/TownsGeoJsonServiceImpl.java
New file @@ -0,0 +1,17 @@ package cn.gistack.sm.geoJson.service.impl; import cn.gistack.sm.geoJson.entity.TownsGeoJson; import cn.gistack.sm.geoJson.mapper.TownsGeoJsonMapper; import cn.gistack.sm.geoJson.service.ITownsGeoJsonService; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/6/13 19:16 */ @Service public class TownsGeoJsonServiceImpl extends BaseServiceImpl<TownsGeoJsonMapper, TownsGeoJson> implements ITownsGeoJsonService { }