跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Javajava

基于 Java 与高德地图的县域烟花销售点 GIS 盘点实践

综述由AI生成通过 Java 调用高德地图 POI 接口,实现了县域烟花爆竹销售点的自动化盘点。方案利用地理信息系统技术,解决了传统人工排查效率低、数据更新慢的问题。核心流程包括接口配置、数据检索及 Excel 导出,支持经纬度可视化标注。该轻量化方案易于部署,可适配不同县域及危化品等监管场景,为基层禁燃决策提供数据支撑。

MqEngine发布于 2026/3/26更新于 2026/5/108 浏览
基于 Java 与高德地图的县域烟花销售点 GIS 盘点实践

基于 Java 与高德地图的县域烟花销售点 GIS 盘点实践

背景与目标

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

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

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

在高德地图中查询烟花销售专卖店的信息如下:

搜索结果示例

Java 实现高德检索

接口定义

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

核心接口参数
package com.example.mapdemo.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);
}

数据获取

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

核心实现代码
package com.example.mapdemo.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.poi.ExcelUtil;
import com.example.mapdemo.domain.amap.AmapPoi;
import com.example.mapdemo.domain.amap.AmapSearchVO;
import com.example.mapdemo.thridinterface.AmapSearchService;

@SpringBootTest
@RunWith(SpringRunner.class)
public class AmaPOISearchCase {
    private static final String AMAP_CLIENT_AK = "yourkey";
    
    @Autowired
    private AmapSearchService amapSearchService;

    /**
     * 查询烟花销售点
     */
    @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<>();

        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()); // 收集所有 POI 数据
                dataCount = searchVO.getCount();
                scrapingIndex++;
            }
            Thread.sleep(3000L); // 避免请求过快,休眠 3 秒
        } while (dataCount > 0);

        System.out.println("一共抓取数据页数:" + scrapingIndex);
        System.out.println(amapPoiData.size());

        if (amapPoiData.size() > 0) {
            // 导出 Excel
            ExcelUtil<AmapPoi> util = new ExcelUtil<>(AmapPoi.class);
            util.exportExcel(amapPoiData, "新晃侗族自治县烟花销售点列表");
            System.out.println("finished");
        }
    }
}
POI 实体类说明

这里给出检索 POI 类的关键 JavaBean 说明,包含名称、唯一标识、经纬度、地址等字段:

package com.example.mapdemo.domain.amap;

import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class AmapPoi implements Serializable {
    private static final long serialVersionUID = 8477368531294599663L;
    
    private String name;      // poi 名称
    private String id;        // poi 唯一标识
    private String location;  // poi 经纬度
    private String type;      // poi 所属类型
    private String typecode;  // poi 分类编码
    private String pname;     // poi 所属省份
    private String cityname;  // poi 所属城市
    private String adname;    // poi 所属区县
    private String address;   // poi 详细地址
    private String pcode;     // poi 所属省份编码
    private String adcode;    // poi 所属区域编码
    private String citycode;  // poi 所属城市编码
    private List<AmapChildrenPoi> children; // 子 POI 信息
    private AmapBusiness business;          // poi 商业信息
    private AmapIndoor indoor;              // 室内相关信息
    private AmapNavi navi;                  // 导航位置相关信息
    private List<AmapPhotos> photos;        // poi 图片相关信息
}

成果展示

Excel 导出

将检索到的新晃县烟花爆竹销售点数据导出为 Excel,便于监管部门线下查看、核对和存档。核心逻辑在于遍历 List<AmapPoi> 并调用工具类导出。

导出结果如下:

Excel 导出结果

数据表格

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

名称经纬度详细地址
彩云烟花爆竹专营店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塘洞村杨柳坪组

总结

通过 Java 调用高德地图 POI 检索接口,实现了烟花爆竹销售点的自动化盘点。相比传统人工方式,大幅提升了数据获取效率和准确性:

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

后续可进一步优化:增加销售点数据的增量更新(避免重复检索)、对接县域政务系统实现数据自动上报、增加违规销售点的位置对比分析等,让 GIS 技术更好地服务于县域基层治理。

目录

  1. 基于 Java 与高德地图的县域烟花销售点 GIS 盘点实践
  2. 背景与目标
  3. Java 实现高德检索
  4. 接口定义
  5. 核心接口参数
  6. 数据获取
  7. 核心实现代码
  8. POI 实体类说明
  9. 成果展示
  10. Excel 导出
  11. 数据表格
  12. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Android AOP 面向切面编程实现用户行为统计
  • 英伟达 GTC 2026 发布新一代推理芯片与 Rubin 架构
  • Whisper-large-v3 语音识别效果评估:100 条样本准确率与召回率分析
  • Python 与 Java:哪个更好,如何选择?
  • Windows 下 MySQL 8.0 社区版安装与配置指南
  • Linux 基础指令详解(二)
  • 利用 AI 构建小红书卡片 MCP 工具实战
  • 基于 OpenAI Whisper 与 Pyannote 的会议语音说话人分离方案
  • Git 远程仓库连接实战:HTTPS 与 SSH 配置详解
  • FAIR plus 机器人全产业链接会聚焦具身智能与产业链协同
  • AI 数据标注平台的选型与实践:效率提升背后的技术逻辑
  • OpenHarmony 中使用 web_socket 实现跨平台 WebSocket 通信
  • 人工智能、机器学习与深度学习的真正区别
  • OpenClaw 多智能体路由及飞书多机器人配置
  • 详解数据结构之跳表
  • JavaScript 中 window.location 对象详解与实战
  • 天然气管道内检测机器人检测节机械结构设计
  • QUEST 一体机 SideQuest 安装 APK 与 OBB 数据包教程
  • AI 辅助编写 pytest 单元测试:覆盖率提升实战
  • FuseLLM:基于知识融合的大模型集成方法

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online