package org.sxkj.odm.service.impl;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.sxkj.odm.config.PyToolsServiceProperties;
|
import org.sxkj.odm.constant.TifConstant;
|
import org.sxkj.odm.service.PyTifSendRequest;
|
import org.sxkj.odm.service.WhiteFilmGeoJsoService;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@Service
|
@Slf4j
|
public class WhiteFilmGeoJsoServiceImpl implements WhiteFilmGeoJsoService {
|
|
@Autowired
|
private PyTifSendRequest pyTifSendRequest;
|
|
@Autowired
|
private PyToolsServiceProperties pyToolsServiceProperties;
|
|
/**
|
* 获取建筑白膜模型的 GeoJSON 数据
|
*
|
* @param districtCode 行政区划code (可选)
|
* @param orgId 机构id (可选)
|
* @return GeoJSON 格式的建筑白膜数据
|
*/
|
@Override
|
public String getBuildingWhiteFilmGeoJson(String districtCode, String orgId) {
|
try {
|
// 构建请求URL
|
String baseUrl = getBaseUrl(); // 根据当前环境选择 BASE_URL_DEV, BASE_URL_TEST 或 BASE_URL_PROD
|
String url = baseUrl + TifConstant.GET_GEOJSON_API;
|
|
// 构建请求参数
|
Map<String, Object> params = new HashMap<>();
|
if (districtCode != null) {
|
params.put("district_code", districtCode);
|
}
|
if (orgId != null) {
|
params.put("org_id", orgId);
|
}
|
// 发起HTTP GET请求
|
String geojsonData = pyTifSendRequest.sendGetJsonByMap(url, params);
|
|
// 记录成功日志
|
log.info("成功获取建筑白膜 GeoJSON 数据");
|
|
return geojsonData;
|
|
} catch (Exception e) {
|
log.error("获取建筑白膜数据失败: {}", e.getMessage(), e);
|
throw new RuntimeException("获取建筑白膜数据失败", e);
|
}
|
}
|
|
/**
|
* 网格生成geojson接口
|
* @param districtCode
|
* @param orgId
|
* @return
|
*/
|
@Override
|
public String getAreaGridFilmGeoJson(String districtCode, String orgId) {
|
try {
|
// 构建请求URL
|
String baseUrl = getBaseUrl(); // 根据当前环境选择 BASE_URL_DEV, BASE_URL_TEST 或 BASE_URL_PROD
|
String url = baseUrl + TifConstant.GET_GRID_GEOJSON_API;
|
|
// 构建请求参数
|
Map<String, Object> params = new HashMap<>();
|
if (districtCode != null) {
|
params.put("district_code", districtCode);
|
}
|
if (orgId != null) {
|
params.put("org_id", orgId);
|
}
|
// 发起HTTP GET请求
|
String geojsonData = pyTifSendRequest.sendGetJsonByMap(url, params);
|
|
// 记录成功日志
|
log.info("成功获取建筑白膜 GeoJSON 数据");
|
|
return geojsonData;
|
|
} catch (Exception e) {
|
log.error("获取建筑白膜数据失败: {}", e.getMessage(), e);
|
throw new RuntimeException("获取建筑白膜数据失败", e);
|
}
|
}
|
|
// 辅助方法:根据当前环境选择基础URL
|
private String getBaseUrl() {
|
String url = pyToolsServiceProperties.getPyToolsService();
|
return url;
|
}
|
}
|