县域烟花禁燃监管 GIS 实践:基于 Java 与高德地图的销售点盘点 —— 以新晃县为例

县域烟花禁燃监管 GIS 实践:基于 Java 与高德地图的销售点盘点 —— 以新晃县为例

目录

一、前言

1. 背景描述

2. 聚焦新晃县

二、Java 实现高德检索

1. 接口定义

核心接口参数定义

2. 数据获取

核心实现代码

POI类说明

三、成果展示

1. Excel 展示

2、表格展示        

四、总结


一、前言

1. 背景描述

        春节期间烟花爆竹禁燃禁放是保障公共安全、改善空气质量的重要举措,而禁燃政策落地的核心环节之一,是对县域范围内烟花爆竹销售点的精准盘点与动态监管。传统的人工排查方式存在效率低、数据更新不及时、空间位置可视化差等问题,难以满足县域精细化监管的需求。在高德地图中查询烟花销售专卖店的信息如下:

        地理信息系统(GIS)技术能够将空间位置与业务数据深度融合,而高德地图 API 提供了成熟的地理编码、POI 检索等能力,结合 Java 语言的跨平台、高稳定性特性,可快速搭建一套轻量化的县域烟花销售点盘点系统,实现销售点位置检索、数据整合、成果输出的全流程自动化,为禁燃监管决策提供数据支撑。

2. 聚焦新晃县

        新晃侗族自治县隶属于湖南省怀化市,地处湘黔边界,县域内乡镇分布分散、地形复杂,烟花爆竹销售点多分布于乡镇集市、村级小卖部等场景,人工盘点耗时耗力且易出现遗漏。

        本次实践以新晃县为研究对象,依托 Java 开发语言和高德地图 API,针对该县春节烟花禁燃后的销售点开展盘点工作,验证 GIS 技术在县域基层监管中的实用性,也为同类县域的烟花禁燃监管提供可复用的技术方案。

二、Java 实现高德检索

1. 接口定义

        首先需在高德开放平台注册开发者账号,申请 Web 服务 API Key(注意区分「Web 服务」与「前端 JS」Key),本次核心使用高德的 POI 搜索接口(/v5/place/text),用于检索新晃县范围内的烟花爆竹销售点。关于如何申请开发者账号和申请API Key,可以翻阅之前的博客进行查询。

        核心接口参数定义
package com.yelang.project.thridinterface; import com.burukeyou.uniapi.http.annotation.HttpApi; import com.burukeyou.uniapi.http.annotation.param.QueryPar; import com.burukeyou.uniapi.http.annotation.request.GetHttpInterface; import com.burukeyou.uniapi.http.core.response.HttpResponse; @HttpApi(url = "https://restapi.amap.com/v5") public interface AmapSearchService { @GetHttpInterface("/place/text") public HttpResponse<String> getSearch(@QueryPar("keywords") String keywords,@QueryPar("types") String types,@QueryPar("region") String region,@QueryPar("page_size") String page_size,@QueryPar("page_num") String page_num ,@QueryPar("show_fields")String show_fields, @QueryPar("key") String key); }

2. 数据获取

        基于 UniHttp实现 HTTP 请求,解析高德返回的 JSON 数据,提取销售点的核心信息(名称、地址、经纬度、联系方式)。

核心实现代码
package com.yelang.project.unihttp; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.burukeyou.uniapi.http.core.response.HttpResponse; import com.google.gson.Gson; import com.yelang.common.utils.StringUtils; import com.yelang.common.utils.geo.CoordinateTransformUtil; import com.yelang.common.utils.poi.ExcelUtil; import com.yelang.project.education.domain.amap.AmapPoi; import com.yelang.project.education.domain.amap.AmapSearchVO; import com.yelang.project.flightaware.TestFlightawareDetails.FlightHistory; import com.yelang.project.thridinterface.AmapSearchService; @SpringBootTest @RunWith(SpringRunner.class) public class AmaPOISearchCase { private static final String AMAP_CLIENT_AK = "yourkey"; @Autowired private AmapSearchService amapSearchService; /** * - 查询烟花销售点 add by 夜郎king * @throws InterruptedException */ @Test public void searchChangshaFireworks() throws InterruptedException { String keywords = "烟花"; String types = "060000"; String page_size = "25"; String region = "431227"; String show_fields = "children,business,indoor,navi,photos"; HttpResponse<String> result = null; Gson gson = new Gson(); int scrapingIndex = 1; int dataCount = 0; List<AmapPoi> amapPoiData = new ArrayList<AmapPoi>(); do { result = amapSearchService.getSearch(keywords, types,region, page_size,String.valueOf(scrapingIndex),show_fields,AMAP_CLIENT_AK); System.out.println(result.getBodyResult()); if(StringUtils.isNotEmpty(result.getBodyResult())) { AmapSearchVO searchVO = gson.fromJson(result.getBodyResult(), AmapSearchVO.class); amapPoiData.addAll(searchVO.getPois());//将所有数据添加到Excel中 dataCount = searchVO.getCount(); scrapingIndex ++; } Thread.sleep(3000L);//休眠3000秒 } while (dataCount > 0); System.out.println("一共抓取数据页数:" + scrapingIndex); System.out.println(amapPoiData.size()); if(amapPoiData.size() > 0) { // excel工具包 ExcelUtil<AmapPoi> util = new ExcelUtil<AmapPoi>(AmapPoi.class); util.exportExcel(amapPoiData, "新晃侗族自治县烟花销售点列表"); System.out.println("finished"); } } }
POI类说明

        这里给出检索POI类的关键JavaBean说明:

package com.yelang.project.education.domain.amap; import java.io.Serializable; import java.util.List; import com.yelang.framework.aspectj.lang.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; /** * -单个 poi 内包含的完整返回数据 * @author 夜郎king * */ @Data @ToString @AllArgsConstructor @NoArgsConstructor public class AmapPoi implements Serializable{ private static final long serialVersionUID = 8477368531294599663L; @Excel(name = "名称") private String name;//poi 名称 @Excel(name = "唯一标识") private String id;//poi 唯一标识 @Excel(name = "经纬度") private String location;//poi 经纬度 @Excel(name = "所属类型") private String type;//poi 所属类型 @Excel(name = "分类编码") private String typecode;//poi 分类编码 @Excel(name = "所属省份") private String pname;//poi 所属省份 @Excel(name = "所属城市") private String cityname;//poi 所属城市 @Excel(name = "所属区县") private String adname;//poi所属区县 @Excel(name = "详细地址") private String address;//poi 详细地址 @Excel(name = "所属省份编码") private String pcode;//poi 所属省份编码 @Excel(name = "所属区域编码") private String adcode;//poi 所属区域编码 @Excel(name = "所属城市编码") private String citycode;//poi 所属城市编码 private List<AmapChildrenPoi> children;//子 POI 信息 private AmapBusiness business;//poi 商业信息 private AmapIndoor indoor;//室内相关信息 private AmapNavi navi;//导航位置相关信息 private List<AmapPhotos> photos;// poi 图片相关信息 }

三、成果展示

1. Excel 展示

        将检索到的新晃县烟花爆竹销售点数据导出为 Excel,便于监管部门线下查看、核对和存档。基于 自定义注解的实现快速导出,核心代码如下:

if(amapPoiData.size() > 0) { // excel工具包 ExcelUtil<AmapPoi> util = new ExcelUtil<AmapPoi>(AmapPoi.class); util.exportExcel(amapPoiData, "新晃侗族自治县烟花销售点列表"); System.out.println("finished"); }

        导出结果如下:

2、表格展示        

        提取关键信息后,可以转为以下关键表格,具体如下:

名称经纬度详细地址
彩云烟花爆竹专营店109.220368,27.358348320国道柏树林便桥往波洲方向下来500米
浏阳中洲烟花(贡溪四哥店)109.163442,27.119872贡溪镇贡溪村牛场斜对面
唐光清烟花爆竹109.137099,27.183113扶罗敬老院
浏阳花炮连锁(贡溪店)109.170480,27.117722贡溪镇贡溪村委会门口
浏阳烟花贡溪敏哥专卖店109.166282,27.119753贡溪镇贡溪村芒井168号
浏阳花炮连锁(扶罗旗舰店)109.142700,27.195404G242扶罗汽车站北侧约210米
浏阳花炮109.074211,27.312052320国道西北侧
庆泰花炮(晃州西路店)109.149341,27.345548新晃金米立再生资源有限公司南侧140米
浏阳电子花炮销售总部108.897645,27.035767中国邮政(凳寨乡邮政所)北侧160米
浏阳东方红烟花109.144014,27.191250242国道西南侧
中洲烟花(晃州西路店)109.152110,27.345960中国石化新晃服务区南加油站西南侧230米
浏阳中洲烟花(新晃侗族自治县G242店)109.126095,27.426852马溪冲村民小组东南侧
政翔烟花109.141175,27.349175晃州镇大树湾村退役军人服务站东南侧
多多烟花爆竹专卖店109.159611,27.375502云盘路与242国道交叉口东南440米
中洲烟花109.142630,27.195561浏阳花炮连锁(扶罗旗舰店)西北侧
浏阳烟花鞭炮专营109.217475,27.345625五妹批发部南侧210米
宏伟名烟名酒烟花爆竹专店(X064店)109.232416,27.279789064县道与242国道交叉口南120米
中洲烟花(X064店)109.262424,27.193034中寨敬老院东侧60米
花海烟花爆竹经营有限公司109.188200,27.371315907乡道与侗寨路交叉口东500米
新晃县花千树烟花爆竹经营有限公司109.225346,27.337023塘洞村杨柳坪组

四、总结

        以上就是本文的主要内容。本文以新晃县为例的县域烟花禁燃监管 GIS 实践,通过 Java 调用高德地图 POI 检索接口,实现了烟花爆竹销售点的自动化盘点,相比传统人工方式,大幅提升了数据获取效率和准确性:

  1. 技术层面:Java + 高德地图 API 的组合轻量化、易部署,无需搭建复杂的 GIS 服务器,适合县域基层监管部门的技术落地能力;本次实践基于 Java 调用高德地图 POI 接口,实现了新晃县烟花销售点的自动化盘点,解决了传统人工盘点效率低、可视化差的问题;
  2. 业务层面:导出的 Excel 成果可直接对接监管工作,经纬度数据还可进一步导入高德地图 Web 端,实现销售点的可视化标注,辅助禁燃巡查路线规划;核心流程为「接口配置→数据检索→Excel 导出」,技术方案轻量化、易复用,适配县域基层监管的落地需求;
  3. 拓展性:该方案可快速适配其他县域,仅需修改行政编码和检索关键词,即可复用至其他品类(如危化品、农资)的县域监管场景。成果不仅可直接服务于禁燃监管工作,且方案可快速迁移至其他县域或其他品类的监管场景。

        后续可进一步优化:增加销售点数据的增量更新(避免重复检索)、对接县域政务系统实现数据自动上报、增加违规销售点的位置对比分析等,让 GIS 技术更好地服务于县域基层治理。行文仓促,定有不足之处,欢迎各位朋友在评论区批评指正,不胜感激。

Read more

Windows下MATLAB与C/C++混合编程:DLL生成与调用实战

Windows下MATLAB与C/C++混合编程:DLL生成与调用实战

Windows下MATLAB与C/C++混合编程:DLL生成与调用实战 在科学计算与工程开发中,MATLAB凭借其便捷的矩阵运算和可视化能力广受青睐,但面对大规模数据处理或高性能算法时,C/C++的执行效率优势无可替代。将二者结合,通过动态链接库(DLL) 实现混合编程,既能发挥MATLAB的易用性,又能借助C/C++提升核心代码性能。本文将手把手教你在Windows环境下完成从C/C++ DLL编写、编译到MATLAB调用的全流程,附带完整代码与避坑指南! 一、核心原理与准备工作 1. 核心逻辑 C/C++编译生成的DLL文件包含可被外部程序调用的函数,通过__declspec(dllexport)声明导出函数,并使用extern "C"指定C链接规范,避免C++的名称修饰(name mangling)问题,确保MATLAB能正确识别函数名。 MATLAB通过loadlibrary函数加载DLL,解析函数接口后,使用calllib函数调用目标函数,实现数据交互。 2.

By Ne0inhk

基于Java Web的城市花园小区维修管理系统的设计与实现(源码+论文+部署+安装)

感兴趣的可以先收藏起来,还有在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望可以帮到大家。 一、程序背景 在城市化高速发展背景下,城市园林小区规模和数量不断增加,维修管理作为小区物业管理的核心环节,直接关系到住户生活品质,但传统维修管理模式依赖纸质记录、电话沟通和手工巡检,存在信息传递不及时、维护响应缓慢、过程难以追溯、数据统计不精准等问题,既增加了物业管理成本,也降低了业主满意度。同时,随着互联网技术的普及,业主对信息化、智能化的物业服务需求日益提升,希望通过便捷的线上平台实现报修、查进度、反馈意见等操作。为此,基于 Java 网络技术,开发城市花园小区维修管理系统,解决传统管理痛点,推动小区维修管理信息化、智能化升级,满足现代化住宅小区管理需求。 二、程序功能需求 系统围绕管理员、业主(用户)、维修工三大角色设计,覆盖 “报修 - 派单 - 维修 - 反馈 -

By Ne0inhk

【Java基础面试题】Java特点,八种基本数据类型

Java的特点 * 1.面向对象 * 2.跨平台 * 3.简单易学 * 4.内存管理 JVM、JDK、JRE的关系 * JVM:Java虚拟机,它负责把字节码文件进行编译并运行,是Java具有跨平台性的关键所在。它还有内存管理,垃圾回收等功能。 * JDK:JDK是Java开发工具包,它包含了JVM,编译器,调试器等开发工具,还包含一系列类库。它提供了Java程序编译,调试,运行所需要的工具和环境。 * JRE:是java运行时的最小环境,它包含JVM和一组Java类库,用于支持java运行。 数据类型 八种基本数据类型: 整型:byte,short,int,long 浮点型:float,double 字符型:char 布尔类型:boolen 这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、

By Ne0inhk
从 .NET 到 Java 的转型指南:详细学习路线与实践建议

从 .NET 到 Java 的转型指南:详细学习路线与实践建议

文章目录 * 第一部分:转型背景与核心差异分析 * 1.1 为什么需要从 .NET 转型到 Java * 1.2 .NET 与 Java 核心架构差异 * 1.2.1 运行时环境对比 * 1.2.2 内存管理机制 * 1.3 心态调整与学习策略 * 1.3.1 相似性利用 * 1.3.2 差异性重视 * 第二部分:Java 语言基础深入学习 * 2.1 Java 语法核心概念 * 2.1.1 基本数据类型与包装类 * 2.1.2 字符串处理 * 2.

By Ne0inhk