maputnik项目实操

1. 安装部署

1.1. docker部署

yaml 复制代码
version: "3.8"

services:
  maputnik:
    image: ghcr.io/maplibre/maputnik:main
    container_name: maputnik
    restart: unless-stopped
    ports:
      - "8888:8000"

1.2. 访问地址

http://192.168.152.135:8888/

2. maputnik使用

2.1. 准备数据

2.1.1. geojson数据

2.1.2. 空间数据库中的geojson数据

复制代码
http://192.168.152.1:8080/api/geojson/buildings?bbox=73.45051018383731,6.317355183421367,135.09411098065837,53.559883747749566
java 复制代码
package com.xiaocai.postgis_mvt_demo.services;  
  
import org.springframework.jdbc.core.JdbcTemplate;  
import org.springframework.stereotype.Service;  
  
@Service  
public class GeoJsonService {  
  
    private final JdbcTemplate jdbcTemplate;  
  
    public GeoJsonService(JdbcTemplate jdbcTemplate) {  
        this.jdbcTemplate = jdbcTemplate;  
    }  
  
    public String queryBuildingsAsGeoJson(Double minLon, Double minLat,  
                                          Double maxLon, Double maxLat) {  
  
        String baseSql =  
                "SELECT json_build_object(" +  
                        "  'type', 'FeatureCollection'," +  
                        "  'features', COALESCE(json_agg(" +  
                        "    json_build_object(" +  
                        "      'type',       'Feature'," +  
                        "      'geometry',   ST_AsGeoJSON(ST_Transform(the_geom, 4326))::json," +  
                        "      'properties', json_build_object(" +  
                        "        'area', area," +  
                        "        'name', name" +  
                        "      )" +  
                        "    )" +  
                        "  ), '[]'::json)" +  
                        ") AS geojson " +  
                        "FROM 国界与省界_polygon ";  
  
        if (minLon != null && minLat != null && maxLon != null && maxLat != null) {  
            baseSql += "WHERE the_geom && ST_MakeEnvelope(?, ?, ?, ?, 4326)";  
            return jdbcTemplate.queryForObject(  
                    baseSql,  
                    new Object[]{minLon, minLat, maxLon, maxLat},  
                    String.class  
            );  
        } else {  
            return jdbcTemplate.queryForObject(baseSql, String.class);  
        }  
    }  
}

2.2. 加载效果

2.3. 导出单独打开加载效果

2.3.1. 导出HTML

2.3.2. html加载效果

相关推荐
搞科研的小刘选手18 天前
【同济大学主办】第十一届能源资源与环境工程研究进展国际学术会议(ICAESEE 2025)
大数据·人工智能·能源·材质·材料工程·地理信息
搞科研的小刘选手1 个月前
【罗马第三大学主办 | 可线上参会】第四届地理信息与遥感技术国际学术会议(GIRST 2025)
遥感·地理信息·测绘·地理信息系统·卫星导航·测量与测绘·地图制图
GIS小小研究僧5 个月前
ArcGIS Pro+PS 实现地形渲染效果图
arcgis·gis·qgis·地理信息
KY_chenzhao9 个月前
地理信息系统(ArcGIS)在水文水资源及水环境中的应用:空间数据管理‌、空间分析功能‌、‌可视化表达‌
arcgis·gis·水文水资源·地理信息
GIS思维1 年前
ArcGIS定义投影与投影的区别(数据和底图不套合的原因和解决办法)
arcgis·gis·地理信息·arcgis坐标系·动态投影
GIS思维1 年前
ArcGIS必会的选择要素方法(AND、OR、R、IN等)位置选择等
arcgis·gis·地理信息·arcgis位置选择·arcgis模糊查询
学地理的小胖砸1 年前
【简介Sentinel-1】
信息可视化·sentinel·遥感·地理信息·遥感影像数据源
学地理的小胖砸1 年前
【IRS-P5卫星简介】
信息可视化·遥感·地理信息·遥感影像数据源
学地理的小胖砸1 年前
【高分系列卫星简介——高分五号卫星(GF-5)】
开发语言·python·信息可视化·遥感·地理信息