县域烟花禁燃监管 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

AI绘画低成本方案:没显卡别急,2块钱试效果

AI绘画低成本方案:没显卡别急,2块钱试效果 你是不是也遇到过这种情况?作为淘宝店主,想给自家商品拍点高级感十足的主图、详情页,结果一问代运营公司,单张AI生成图报价20元起步,做一套图下来几百块就没了。关键是——你又不是天天要用,花大价钱请人做图,实在不划算。 别急!现在有个超实用的新选择:花2块钱,租用1小时高端GPU服务器,自己动手生成AI商品图。成本直接从20元降到0.2元,省下90%以上!而且操作比你想的简单得多,哪怕你完全不懂技术,也能跟着步骤一步步搞定。 我最近帮几个朋友实测了这个方法,用ZEEKLOG星图平台提供的Stable Diffusion镜像,从部署到出图,全程不到15分钟。生成的商品图清晰、风格可控,还能批量制作不同背景和角度的效果图,完全可以满足日常上新需求。 这篇文章就是为你量身打造的“零基础AI绘画入门指南”。我会手把手带你: * 理解什么是AI绘画,它怎么帮你省钱 * 如何在没有独立显卡的情况下,快速使用高端GPU资源 * 用预置镜像一键启动Stable Diffusion服务 * 输入提示词(prompt)生成高质量商品图 * 调

By Ne0inhk
Stable Diffusion 宿主机部署痛点拆解 + Docker 三方案(Run/Compose/Dockerfile)深度测评

Stable Diffusion 宿主机部署痛点拆解 + Docker 三方案(Run/Compose/Dockerfile)深度测评

目录 一、引言:为什么选择容器化部署? 二、Docker Run:快速启动官方镜像 1、方案概述 2、实战步骤 3、参数详解 4、适用场景 5、镜像保存 三、Docker Compose:生产级编排部署 1、方案概述 2、文件内容 3、操作命令 4、网络配置优势 5、适用场景 四、自定义Dockerfile:高度定制化部署 五、故障排除与常见问题 1、指定挂载GPU而不是全部挂载 1.1、查看容器内部GPU数量 1.2、指定GPU 2、网络波动,一般是因为连接超时 3、如何下载模型?

By Ne0inhk

Neo4j 知识讲解与在线工具使用教程

图数据库领域的核心工具 ——Neo4j,同时详细拆解其在线预览控制台(https://console-preview.neo4j.io/)的使用方法,以及查询工具(https://console-preview.neo4j.io/tools/query)的模块功能。 一、Neo4j 核心知识铺垫 在使用工具前,我们需要先理解 Neo4j 的本质和核心概念,这是后续操作的基础。 1. 什么是 Neo4j? Neo4j 是世界上最流行的原生图数据库(Native Graph Database),专门用于存储、查询和分析 “实体之间的关联关系”。它与我们熟悉的 MySQL 等关系型数据库的核心差异的是: * 关系型数据库(MySQL):用 “表 + 行 + 外键” 间接表示关联,查询多表关联时需频繁 JOIN,效率低; * 图数据库(Neo4j)

By Ne0inhk
IOT | 无人机(第一期)

IOT | 无人机(第一期)

前言 现在无人机正朝着**小型化、智能化、集群化**快速发展,AI、远程通信等技术不断成熟,让它从普通工具变成很多场景的核心装备,在巡检、物流、救援等行业广泛应用。 实际需求也推动着技术不断升级,无人机作业更自主高效,对应的安全管控和防护体系也在完善,通过智能识别、分级处置等方式保障安全,整个无人机领域正朝着更智能、更系统化的方向发展。 这一专题我们会在无人机靶场Damn Vulnerable Drone进行试验,同时学习最基本的原理和思路方法,后期本专栏会开设真实无人机下的攻防实验,那么我们就此开始吧。 注:本文仅供合法授权范围内的安全研究使用,请遵循相关法律法规,不得用于未授权的入侵、破坏或干扰行为。 实验资源 无人机靶场Damn Vulnerable Drone下载地址:https://github.com/nicholasaleks/Damn-Vulnerable-Dronehttps://github.com/nicholasaleks/Damn-Vulnerable-Drone https://mp.weixin.qq.com/s/nEJYW8f_

By Ne0inhk