GIS篇—搭建本地地图服务器(geoserver )和 leaflet 绘制多边形,点击事件等

Geoserver简介 GeoServer,顾名思义,是一个“服务器”,用于编辑和发布地理控件数据。它是一款基于Java语言开发的,实现OGC标准的,支持用户浏览、编辑和发布地理空间数据的开源软件。它也是一款支持在Web上渲染显示二维地图,并且能够对其进行平移、缩放操作的GIS工具。 阅读详情
AI摘要

本文介绍如何在内网环境下搭建GeoServer地图服务器,实现地图数据图层叠加功能,以及使用Leaflet库进行地图开发的具体步骤,包括地图服务器的配置、数据源和图层的创建,和Leaflet地图的初始化、图层加载及交互功能实现。

        因系统开发需求,要开发一个地图数据图层叠加,很简单,但是要求是在内网部署。这就说明了,不能用第三方地图服务器,如百度地图,天地图,谷歌等。那么问题就来了,要什么地图?这个时间我才知道GIS这个名词,我记得有段时间最可笑,自己去投了找GIS地图的岗位,刚开始以为对接百度地图开发就是GIS了,哈哈~原原谅我的无知。

       结果,咨询了网友和百度GIS是一门学科,还有专门的考试。不说了..........零基础就做什么记录什么吧。

       需求:用地图开发数据图层叠加,比如森林分布(我感觉应该是GIS入门了吧,咱们也不懂、也不敢问、不知道为啥)

       思考:

              1、搭建个地图服务器(geoserver 开源、arcgis)、就知道这两个。

              2、自己地图服务器上开发的技术库(leaflet、openlayers)。

      搭建完案例下一步:              

              1、发布arcgis的切片缓存、坐标转换、leaflet 技术开发等。

              2、缺什么学什么,比较大学不是学这个的(GIS方向挺好的,可以学习,哈哈)

 

一、geoserver 开源服务器搭建

      GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过GeoServer可以比较容易地在用户之间迅速共享空间地理信息。GeoServer是开源软件。

      在官网下载(https://docs.geoserver.org/stable/en/user/index.html),然后丢在Tomcat服务器里面就好了。

在GeoServer的Web管理页面中输入用户名与密码进行登录。如果是默认安装,那么用户名为"admin",密码为"geoserver"。

建立工作区,管理我们以后的数据,URL要填。

新建数据源(这里要下载,shp文件:https://github.com/andyczy/czy-study-gis   shp目录下)

 新建图层

点击保存、在Layer 找到刚新建的图层

点击黄色按钮、就可以看到地图了

 

二、 leaflet 库开发(代码可以在GitHub下载 https://github.com/andyczy/czy-study-gis)

编辑 index.html 文件

<!-- 引入 文件 -->
<link rel="stylesheet" href="./leaflet.css" />
<script src="./leaflet.js"> </script>
<!-- 增加地图高度 -->
<style>
#mapDiv { height: 900px; }
</style>
<!-- 创建一个 地图的div id 必须有 但是自定义 -->
<div id="mapDiv"></div>
<script>

        //这个是对接我们刚刚搭建的地图服务器
        var leafletMap = new L.Map("mapDiv", {
            zoom: 8,
            center: [18.260521, 109.517698],
            boxZoom: true, 
        });
        var marker = new L.marker([18.260521, 109.517698]);
        //marker.addTo(map);
        var wmsLayer= L.tileLayer.wms("http://localhost:8080/geoserver/map/wms?", { // 链接要改对应的
            layers: 'map:CHINA_2014GDP',//需要加载的图层,就是我们刚刚新建的。map 和 图层名称
            format: 'image/png',//返回的数据格式
            transparent: true,
            //crs: L.CRS.EPSG4326
        });
        console.log(leafletMap.getCenter());
        leafletMap.addLayer(wmsLayer);


        // 这是对接第三方
        // mapbox 官网注册并创建下面的access token都是免费的,不过有5w次的浏览限制
        // var url = 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoia2FuZXdhbmciLCJhIjoiY2pwM2UxNHNkMGF1MzNwc2FtMnNhdXJsMCJ9.KZpCBtizDeltZO6JhGc6_w';
        // //初始化 地图
        // var leafletMap = L.map('mapDiv').setView([18.260521, 109.517698],  10);
        // //将图层加载到地图上,并设置最大的聚焦还有map样式
        // L.tileLayer(url, {
        //         maxZoom: 12,
        //         id: 'mapbox.streets'
        // }).addTo(leafletMap);

        //增加一个marker ,地图上的标记,并绑定了一个popup,默认打开
        L.marker([18.260521, 109.517698]).addTo(leafletMap)
                .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
        
        //增加一个圈,设置圆心、半径、样式
        L.circle([18.260521, 109.517698], 500, {
                color: 'red',
                fillColor: '#f03',
                fillOpacity: 0.5
        }).addTo(leafletMap).bindPopup("I am a circle.");
        
        //增加多边形
        L.polygon([
                [18.400849, 109.004772],
                [18.260521, 109.517698],
                [18.400534, 109.786696]
        ]).addTo(leafletMap).bindPopup("I am a polygon.");
        
        // 为点击地图的事件 增加popup
        var popup = L.popup();
        function onMapClick(e) {
                popup
                        .setLatLng(e.latlng)
                        .setContent("You clicked the map at " + e.latlng.toString())
                        .openOn(leafletMap);
        }
        leafletMap.on('click', onMapClick);
</script>

效果图:

 

 

相关链接:

geoserver 官网

leaflet 官网

天靖居士GISer 

GeoServer一:GeoServer的安装与初步使用

leaflet加载高德地图和Geoserver的WMS服务

 

 

 

 

 

GeoServer 基础篇(一) 文章目录GeoServerGeoServer 主要特性本地部署web页面功能介绍(重点)1.首先登录进入web功能页面2.登录后功能页面全览3.关于和状态模块4.数据模块4.1 Layer Preview4.2 工作区(workspace)4.3 数据存储(Stores)4.4 图层(Layers)4.5 图层组(Layer Groups)4.6 Styles(样式)发布一个地图服务 GeoServer GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 阅读详情

相关推荐

开源GIS平台GeoLibre部署与实战:从PostGIS到GeoServer全栈指南

地理信息系统(GIS)作为处理空间数据的核心技术,其核心原理在于对地理坐标、属性和拓扑关系进行数字化管理。通过空间数据库(如PostGIS)存储矢量与栅格数据,并利用地图服务引擎(如GeoServer)遵循OGC标准发布WMS、WFS等服务,实现了空间数据的共享与互操作。这一技术栈的价值在于将复杂的地理分析能力封装为标准服务,大幅降低GIS应用开发门槛。在智慧城市、物联网、Web地图等应用场景中,开发者常面临组件集成复杂、配置繁琐的挑战。而开源GIS集成套件GeoLibre,通过预置PostGIS、GeoS

weixin_30876945的博客 404

GeoServer入门(一):介绍、配置与安装(Java环境配置、Tomcat安装部署)

GeoServer入门(一):介绍、配置与安装

将登太行雪满山 3万+

历史GIS实战:从文本到动态地图的时空数据重构与可视化

时空数据可视化是GIS(地理信息系统)与数据分析领域的核心应用,其原理在于将带有时间属性的地理信息进行结构化处理与动态呈现。这项技术的核心价值在于能将抽象、非结构化的信息(如历史文献、传感器日志、业务记录)转化为直观、可交互、可分析的时空演变模型,从而揭示隐藏的模式与关联。在工程实践中,这通常涉及数据清洗、坐标转换、时序管理和前端渲染等一系列技术环节。以历史地理研究为例,通过解析编年史中的战役、行政变迁等记录,结合地理编码与插值算法,可以重构出古代帝国疆域的月度变化图。这种将模糊文本转化为精确动态地图的方法

weixin_33834628的博客 346

GeoServer 安装教程

准备内容 安装环境:win10*64位专业版 安装文件:geoserver-2.15.2 安装步骤 安装JDK 1、安装GeoServer是基于Java的环境,所以需要先装Jdk环境。 2、前往官网下载Java SE http://www.oracle.com/technetwork/java/javase/downloads/index.html 3、接受协议并下载相应...

weixin_38170255的博客 1975

WebGIS开发实战:从PostGIS到Leaflet与Cesium的城市内涝监测平台

从空间数据管理到地图可视化的WebGIS技术栈中,PostGIS作为空间数据库引擎,为海量地理数据提供存储与查询能力;GeoServer则通过标准OGC服务实现数据共享。前端通过Leaflet实现轻量二维地图交互,结合Cesium构建三维场景,可支撑智慧城市内涝监测等复杂业务。坐标系转换、空间索引、瓦片缓存与前端渲染优化,是保障地图应用稳定流畅的关键。本文以广州智慧城市监测平台为例,复盘从需求拆解到上线优化的完整流程,分享实测有效的技术方案,为同类WebGIS项目提供可落地的参考。

weixin_33827731的博客 636

历史地图数据化实战:从GeoJSON到交互式Web应用开发

地理信息系统(GIS)通过矢量数据和栅格数据模型,将地理空间信息转化为可计算、可分析的结构化数据。其核心原理在于利用点、线、面等几何要素及其属性表,精确描述地理实体的空间位置与特征。这一技术价值在于,它使得传统静态地图转变为动态、可编程的数据服务,极大地拓展了空间分析的应用边界。在数字人文、历史地理信息系统(HGIS)等领域,GIS技术为历史疆域变迁的可视化与分析提供了强大支撑。通过将历史地图矢量化,并采用GeoJSON等通用数据格式,开发者可以构建出支持时空查询与交互的可编程历史空间数据层。本文聚焦于历史

weixin_34236869的博客 341

GIS进阶-Openlayers、Vue+Openlayers、Leaflet、Geoserver、PostGis、Java集成Geotools、QGIS等前后端使用工具安装、使用、集成、调用三方组件

作为一名非专业GIS开发者,在日常企业级开发中遇到GIS领域相关业务需求时,参考资料较少,各种体系生态不明确。往往因为错过了好多大神封装好的工具、借口、三方框架、api等白白浪费时间。最主要的是此专栏会持续更新,毕竟GIS的知识体系远不止如此,后续会持续记录、共同积累、共同学习。对自己的知识投资,会换取未来更大的收益!

BADAO_LIUMANG_QIZHI的博客 1316

GIS系列(四)GeoServer的介绍和用法

首先,GeoServer是一个地图服务器。 关于地图服务器,其实和普通服务器没啥区别,就是专门用来发布地图的。 实际上,如果你的项目是前后端结合的话,可以不需要地图服务器。 你可以在后端配合Geotools,postgis等直接把地理数据返回前端,前端再进行加载。 但是有的时候,数据量不是很大,或者说项目基本不需要后端。在或者说你是一个纯前端的项目,服务器只需要放置和发布地图。 那这个时候你就要用到Geoserver了。它可以帮助你把地图资源,地图数据源以服务的形式发布。 关于Geoserver

lz5211314121的博客 1万+

1小时搭建原型:用GeoServer验证GIS创意

整个过程最惊喜的是部署环节——点击发布按钮后,平台自动生成可外网访问的地址,无需处理Nginx配置或域名绑定。测试时发现坐标显示异常,通过实时日志快速定位到是CSV数据格式问题,修改后立即生效。虽然生成的代码需要后续优化,但核心功能跑通后,团队能快速评估方案可行性。最近想尝试一个地理信息相关的项目创意,但传统GIS开发需要配置复杂的服务环境,光是安装GeoServer就可能花掉半天时间。能快速生成原型,实测用不到1小时就完成了从数据导入到功能演示的全流程,记录下这个极速验证方案。响应式布局适配移动端。

GoldEagle19的博客 587

GeoServer GIS 服务器(geoServer离线地图服务器搭建)

tomcat是支持war包部署的,将下载的zip文件解压,把geoserver.war包拿出来扔到comcat --> webapps下,启动tomcat服务即可,由于我前面把tomcat端口修改为60005,访问时在浏览器输入。不利于存储,比较占内存。该组织发布了一个坐标参照系统的数据集,并维护坐标参照系统的数据集参数,以及坐标转换描述,数据集对全球收录到的坐标参照系统进行了编码。点击工作区,点击添加新的工作区填写工作区名称,命名空间url地址,这个地址在地图发布后可以调用不同的图层,一定要填写。

专注于计算机研发知识和资讯分享 1556

海图文件API: WMTS 地图瓦片获取

ECDIS(Electronic Chart Display and Information System)是指符合有关国际标准的船用电子海图系统。船位监控: 把本船的位置、所处的静态环境、周围的动态目标信息显示在一个屏幕上,使得船舶驾驶员能够迅速地获取所有这些信息,及时地做出操船决策。leaflet加载天地图:卫星底图(影像图层) 和 路网底图(矢量图层)【天地图API升级,解决504问题】WMTS 标准图层是用于加载 OGC 标准的 WMTS 地图服务的一种图层类。

专注于计算机研发知识和资讯分享 797

用GEOSERVER快速构建应急指挥地图系统原型

这里有个小技巧:直接使用CDN引入GEOSERVER的WMS服务地址,省去了本地代理配置的麻烦。我测试时直接把React项目部署上去,发现内置的预览功能可以实时查看地图效果,省去了本地启动服务的步骤。最近在做一个应急指挥系统的原型开发,需要在极短时间内验证地图相关功能的可行性。这里记录下我的实现思路和关键步骤,特别适合需要快速验证GIS功能的场景。它内置的WMS/WFS/WPS服务几乎覆盖了所有GIS基础需求,配合PostGIS的空间函数可以快速实现专业级分析功能。

ThunderstormLynx23的博客 626

Leaflet+GeoServer+PostGIS WebGIS全链路架构与实战

WebGIS开发中,前端地图渲染与空间数据服务的结合是关键。Leaflet作为轻量级地图库,GeoServer作为标准地图服务发布器,PostGIS作为空间数据库,三者构成了一套稳定、开源的三层架构。其核心原理是PostGIS负责空间数据存储,GeoServer将其发布为WMS/WMTS等标准地图服务,Leaflet在浏览器端完成图层加载与交互渲染。该架构具备安全性高、性能优异、协议标准化的技术价值,支持按需加载、坐标转换与数据独立更新,广泛应用于智慧城市、资源管理、环境监测等场景。基于zip完整工程示例,

weixin_34294649的博客 491

基于Leaflet与GeoJSON的交互式历史地图可视化开发实践

时空数据可视化是地理信息系统(GIS)与Web前端技术结合的重要领域,其核心在于将地理要素的空间几何信息与时间属性进行统一建模与动态呈现。从技术原理上看,通常采用GeoJSON等矢量数据格式承载要素的几何与时间属性,并利用Web地图库(如Leaflet)进行渲染。这种技术方案的价值在于能够将复杂的历史变迁过程,如疆域演化、行政区划调整,转化为直观、可交互的动态地图,极大地提升了历史数据分析与展示的效率和体验。在具体工程实践中,开发者需要处理数据准备、时间轴集成、性能优化等关键环节,其中涉及的热词包括矢量切片

weixin_34184561的博客 353

29.(leaflet篇)leaflet接入geoserver发布的热力图服务.zip

下载如有问题,可私信博主。下载前建议先查看博客内容,其地址为: https://blog.youkuaiyun.com/QQ98281642/article/details/119561130

【数据集】waymo motion dataset介绍与数据解析可视化

waymo motion数据集下载,数据描述,数据特征和地图特征,数据解析并完成数据可视化

shuaixio的博客 5184

GIS相关调研

gis数据库 gir软件 gis组件调研

回到原点 1016

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

GeoServer地图发布全流程:从shapefile到WMS的5分钟实操指南

在WebGIS应用开发中,将空间数据发布为可访问的网络地图服务是核心环节。GeoServer作为开源地图服务器,通过OGC标准协议将shapefile、PostGIS等数据源封装为WMS、WFS等服务,屏蔽了底层GIS复杂性,开发者只需掌握其配置逻辑即可快速完成数据共享与可视化。理解工作区、数据存储与图层的层级关系,是驾驭GeoServer的关键:工作区定义命名空间,数据存储连接物理文件,图层暴露服务接口,最终通过SLD样式控制渲染效果。这一机制广泛应用于自然资源管理、城市规划及在线地图展示等场景。针对世界

weixin_34034670的博客 320

Idea插件Plugins无法联网下载 解决方法(终极版必解决!)

插件联网的Bug疑难杂症,网络上不一样的解决方式以及独特的彩蛋!包解决

码农研究僧的博客 5518

手把手教你学simulink(42.1)--储能系统场景示例:基于Simulink的电池+超级电容器混合储能系统

混合储能系统(HESS)结合了电池和超级电容器的优点,能够在满足高功率需求的同时提供较长的持续放电时间。这种组合特别适合用于电动汽车、可再生能源发电系统、电网频率调节等应用场景。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于电池和超级电容器的混合储能系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑,以分配电池和超级电容器的充放电任务。Matlab。

MHD0815的博客 544

GIS开发工程师:从空间数据处理到业务系统集成的技术全景

空间数据处理与可视化是地理信息系统(GIS)的核心技术,其原理在于将现实世界的地理要素通过坐标系统、数据模型进行数字化表达,并利用空间分析算法挖掘其内在关联。这项技术的价值在于能够将复杂的地理空间问题转化为可计算、可量化的解决方案,从而为决策提供数据支撑。在工程实践中,GIS开发不仅涉及WebGIS前端可视化,更关键的是构建完整的数据处理管线,包括利用PostGIS进行空间数据管理、通过GeoServer发布地图服务,以及将空间分析能力封装为微服务API。其应用场景已从传统的地图展示,广泛渗透到智慧城市、物

weixin_33724659的博客 490

2025.05.28【读书笔记】|如何用SILVA和RFAM数据库高效去除rRNA污染

摘要: 在Ribo-seq等测序数据分析中,清除rRNA污染对结果准确性至关重要。仅使用SILVA数据库可能遗漏5S rRNA污染,建议结合RFAM数据库(特别是RF00001家族)全面清除。操作要点包括:下载两库序列、将RNA碱基U替换为DNA的T、合并序列建立索引,使用bowtie2过滤rRNA reads。注意U/T转换是关键,否则会导致比对失败。该方法能有效提升数据清洁度,为后续分析奠定基础。

980
上一篇: Scrapy 框架爬虫知识、爬虫实战教程
下一篇: 每天定时采集(当前时间到月底)携程机票数据
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值