跳到主要内容
版本:v9.2.0

地图创作指南

本模块包含从数据处理、连接数据库、发布数据服务、地图制图内容,是从0开始进行制图的完整步骤;

  • 本案例数据均来自OSM网站的开源数据,示例内容开源数据下载与软件安装;
  • 案例数据位置:香港中西区、湾仔区、东区、南区;
  • 案例使用软件:QGIS 3.36.3;

步骤一、数据处理

数据处理是为了解决数据冗余和数据坐标系不一致的问题,是不可忽略的步骤;

1.1 QGIS加载数据

  • 打开QGIS,将数据的shp文件全部放置在QGIS软件中; 图形用户界面, 应用程序, Teams 描述已自动生成

1.2 裁切数据范围

  • 利用行政边界裁剪数据范围;
  • 为每个图层执行此步骤; 图形用户界面, 应用程序, Teams 描述已自动生成

1.3 坐标重投影

  • 为了使数据坐标一致,将数据的坐标系统一为EPSG:3857;
  • 规范图层命名;
  • 每个图层执行此步骤; 图形用户界面, 应用程序, Teams 描述已自动生成

1.4 整理数据表单

  • 删除“id”字段和冗余字段;
  • 每个图层执行此步骤; 图形用户界面, 应用程序, Teams 描述已自动生成

步骤二、数据入库

整理好的数据需要放置在数据库中,发布数据服务时需要连接到此数据库;

2.1 QGIS新建数据库连接

  • 右击数据库,输入数据库信息,连接到数据库;
  • 连接数据库的账号和密码中不要出现 “空格”; 图形用户界面, 应用程序, Teams 描述已自动生成

2.2 在数据库中进行“新建架构”

  • 右击PostgreSQL,新建架构,自定义架构名称;
  • 架构的名称不要使用中文或者英文大写; 图形用户界面, 应用程序, Teams 描述已自动生成

2.3 传输数据到数据库

  • 单选\多选处理好的数据图层,拉动到数据库中,完成数据上传; 图形用户界面, 应用程序, Teams 描述已自动生成

步骤三、发布数据服务

在Mapmost Studio中发布数据服务;

3.1 Mapmost Studio菜单查阅

  • 进入Mapmost Studio首页,点击左上角收缩图标,打开菜单栏,查阅菜单栏模块; 图形用户界面, 应用程序, Teams 描述已自动生成

3.2 连接数据库

  • 点进入 “数据库资源” 菜单,进入数据库资源页面,点击 “连接数据库”; 图形用户界面, 应用程序, Teams 描述已自动生成

3.3 配置数据库参数

  • 右击QGIS的数据库,点击 “编辑连接” ,获取到数据库参数数值,在Mapmost Studio中进行“基础信息”填写; 图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

3.4 发布数据服务

3.4.1 、选择数据图层发布服务

  • 在 “数据库资源” 菜单中,选中新连接的数据库与需要的数据图层,发布数据服务; 图形用户界面, 应用程序, Teams 描述已自动生成

3.4.2、配置服务基础信息

  • 在 “创建服务” 的 “基础信息”、“图层信息”模块中,配置服务的基础信息; 图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

步骤四、查阅服务状态

服务状态支持二次编辑与查阅,注意只有当服务发布结束后才可以进行配图;

4.1 检查服务发布状态

  • 进入 “资源服务管理” 的 “地图服务清单” 菜单栏,选中发布的服务列表,点击状态查看,数据全部显示出来表示服务发布已经完成; 图形用户界面, 应用程序, Teams 描述已自动生成

4.2 数据服务二次编辑

  • 进入 “资源服务管理” 的 “地图服务清单” 菜单栏,选择服务列表,点击 “开始编辑” 即可进行服务调整; 图形用户界面, 应用程序, Teams 描述已自动生成

步骤五、矢量配图初始化设置

获取服务,进行地图配图初始化参数配置;

5.1 添加数据源

5.1.1、复制“服务地址”

  • 打开菜单栏中的“地图服务清单”,复制“服务地址”列的字段; 图形用户界面, 应用程序, Teams 描述已自动生成

5.1.2、配置数据源弹窗

  • 点击“制图平台”按钮,进入配图页面,点击“数据源”按钮,进行ID自定义、Type选择、粘贴URL的服务地址; 图形用户界面, 应用程序, Teams 描述已自动生成

5.2 设置中心点坐标

5.2.1、配置地图中心点

  • 打开Mapmost Studio,点击“ 样式配置 ”按钮,输入中心点坐标,详情参照“菜单栏:五”; 图形用户界面, 应用程序, Teams 描述已自动生成

5.3导出样式与样式加载

5.3.1、地图规范命名

  • 点击“导出”按钮,导出现有样式,并规范命名; 图形用户界面, 应用程序, Teams 描述已自动生成

5.3.2、加载Json文件

  • 点击“打开”按钮,在Mapmost Studio中加载Json文件; 图形用户界面, 应用程序, Teams 描述已自动生成

步骤六、地图制图

  • 获取服务,进行地图配图与基础参数配置;
  • 网址中“#”后面的数字为当前视图的显示层级;
  • 下级图层会对上级图层形成压盖效果,需要注意调整图层顺序;
  • 当图层名称前缀一致时,图层会被自动打组;

6.1 添加背景层

6.1.1、配置“添加图层”弹窗

点击“添加图层”按钮,添加背景层,自定义"ID"为“Background”,“Type”选择为"Background"; 图形用户界面, 应用程序, Teams 描述已自动生成

6.1.2、配置“图层属性”模块

选中“Background”图层,配置“绘制属性”模块参数,修改背景层颜色、透明度(网页链接中的“#9”表示当前视窗层级处于第9级); 图形用户界面, 应用程序, Teams 描述已自动生成

6.2 添加边界图层,设置图层属性

6.2.1、配置“添加图层”弹窗

6.2.2、配置“图层属性”模块

  • 选中“boundary”图层,配置“图层属性”模块参数,选择“Source Layer”为“boundary_district”,其中"Source Layer"信息与步骤3.4.2中的“表名”字段一致“地图创作指南:3.4.2”图形用户界面, 应用程序, Teams 描述已自动生成

6.2.3、配置“绘制属性”模块

  • 选中“boundary”图层,配置“绘制属性”模块参数,点击“Σ”可以控制属性在不同层级下的显示效果,每个参数后的“!”点击可查看参数注释; 图形用户界面, 应用程序, Teams 描述已自动生成

6.2.4、复制“图层属性”模块

  • 复制“boundary”图层,配置“图层属性”模块,自定义"ID"为“boundary_line”、“Type”选择“Line”,变更显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.2.5、修改“boundary_line”图层

  • 选中“boundary_line”图层,在“绘制属性”模块中修改描边颜色、描边粗细; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3 添加用地类型图层,设置图层属性

6.3.1、配置“添加图层”弹窗

  • 点击“添加图层”按钮,添加用地类型图层,自定义"ID"为“landuse”、“Type”选择“Fill”、"Source"选择“data”; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3.2、配置“图层属性”模块

  • 选中“landuse”图层,配置“图层属性”模块,"SourceLayer"选择“landuse_joint”、修改图层显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3.3、添加过滤条件

  • 选中“landuse”图层,配置“过滤条件”模块,过滤出“fclass”为"residential”的面数据,操作方式见下图1,过滤条件见图2(如若过滤结果未显示,可以检查“JSON编辑器”模块信息),过滤条件中的字段查找方式参照“地图创作指南:3.4.2”图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

6.3.4、配置“绘制属性”模块

  • 选中“landuse”图层,在“绘制属性”模块中修改面颜色; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3.5、复制“landuse”图层

  • 复制“landuse”图层,配置“图层属性”模块,修改“ID”名称为“landuse_n”、调整图层顺序; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3.6、调取数据字段

  • 选中“landuse_n”图层,配置“文本布局属性”模块,填写“field”为“name”,调用数据中包含的名称字段; 图形用户界面, 应用程序, Teams 描述已自动生成

6.3.7、配置“文本布局属性”模块

  • 选中“landuse_n”图层,配置“文本布局属性”模块,配置文本基本属性,如:字体、大小、行距、行宽、对齐方式、文字颜色、透明度、描边颜色、描边粗细等; 图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

6.3.8、丰富地图样式

  • 参照步骤6.3.1-6.3.8,展示更多用地类型数据,提升配图效果丰富度(注意调整图层顺序); 图形用户界面, 应用程序, Teams 描述已自动生成

6.4 添加道路图层,设置图层属性

6.4.1、配置“添加图层”弹窗

  • 点击“添加图层”按钮,添加道路图层,自定义"ID"名为“road_main”、“Type”选择“Line”、"Source"选择“data”、“SourceLayer”选择“road”、修改显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.4.2、添加过滤条件

  • 选中“road_main”图层,在“过滤条件”模块中,过滤“fclass”字段中“motorway_link”、“motorway”、“trunk”、“trunk_link”数据; 图形用户界面, 应用程序, Teams 描述已自动生成

6.4.3、配置“绘制属性”模块

  • 选中“road_main”图层,在“绘制属性”模块与“布局属性”模块中,更改线颜色、线宽度、线连接点方式等参数; 图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

6.4.4、复制“road_main”图层,制作描边线

  • 复制“road_main”图层,更改ID、颜色、线宽度等信息,制作道路描边效果(注意调整图层顺序); 图形用户界面, 应用程序, Teams 描述已自动生成

6.4.5、复制“road_main”图层,显示道路名称

  • 复制“road_main”图层,“Type”选择“Symbol”、在“文本布局属性”模块中调用道路名称字段(注意调整图层顺序); 图形用户界面, 应用程序, Teams 描述已自动生成

6.4.6、配置“通用布局属性”模块

  • 选中“road_main_n”图层,在“通用布局属性”中设置文字走向、字体大小、旋转方式、字体颜色、描边等信息; 图形用户界面, 应用程序, Teams 描述已自动生成图形用户界面, 应用程序, Teams 描述已自动生成

6.4.7、丰富地图样式

  • 参照步骤6.4.1-6.4.6展示更多道路线数据,提升场景丰富度(注意调整图层顺序); 图形用户界面, 应用程序, Teams 描述已自动生成

6.5 添加水图层,设置图层属性

6.5.1、配置“添加图层”弹窗

  • 点击“添加图层”按钮,添加水图层,自定义"ID"为“water_big”、“Type”选择“Fill”、"Source"选择“data”、“SourceLayer”选择“water”、修改显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.5.2、添加过滤条件

  • 选中“water_big”图层,在“过滤条件”模块中,过滤出“area>=1000000”的面数据; 图形用户界面, 应用程序, Teams 描述已自动生成

6.5.3、配置“绘制属性”模块

  • 选中“water_big”图层,在“绘制属性”模块中更改面数据颜色; 图形用户界面, 应用程序, Teams 描述已自动生成

6.5.4、复制“water_big”图层,显示大湖泊数据

  • 复制“water_big”图层,修改ID为“water_small”、修改显示层级、过滤出“area<1000000”的面数据; 图形用户界面, 应用程序, Teams 描述已自动生成

6.5.5、复制“water_big”图层,显示水系数据

  • 复制“water_big”图层,修改ID为“water_line”、修改显示层级、“SourceLayer”选择“waterline”、删除过滤条件; 图形用户界面, 应用程序, Teams 描述已自动生成

6.6 添加建筑图层,设置图层属性

6.6.1、配置“添加图层”弹窗

  • 点击“添加图层”按钮,添加建筑图层,自定义"ID"为“building”、“Type”选择“FillExtrusion”、"Source"选择“data”、“SourceLayer”选择“building_joint”、修改显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.6.2、配置“绘制属性”模块

  • 选中“building”图层,在“绘制属性”模块中修改建筑颜色、透明度,在“Extrusion height”参数中,输入“["get", "height"]”获取建筑高度; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7 添加点位图层,设置图层属性

6.7.1、配置“添加图层”弹窗

  • 点击“添加图层”按钮,添加点位图层,自定义"ID"为“poi_gov”、“Type”选择“Symbol”、"Source"选择“data”、“SourceLayer”选择“poi_joint”、修改显示层级; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7.2、添加过滤条件

  • 选中“poi_gov”图层,在“过滤条件”模块中,添加过滤条件,并获取名称字段; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7.3、添加图标

  • 选中“poi_gov”图层,在“图标布局属性”模块中,添加图标,并修改图标尺寸; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7.4、配置“文本布局属性”模块

  • 选中“poi_gov”图层,在“文本布局属性”模块中,修改文字字体、文字行宽、文字对齐方式、文字偏移距离、文字颜色、文字描边等信息; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7.5、配置“图标布局属性”模块

  • 选中“poi_gov”图层,在“图标布局属性”模块中,修改图标显示密度; 图形用户界面, 应用程序, Teams 描述已自动生成

6.7.6、丰富地图样式

  • 参照步骤6.7.1-6.7.5,展示更多点位数据,丰富配图样式; 图形用户界面, 应用程序, Teams 描述已自动生成

6.8 调整图层顺序

  • 根据视觉效果与配图需求,整体调整图层顺序,防止文字压盖、数据被避让等情况; 图形用户界面, 应用程序, Teams 描述已自动生成

6.9 样式导出

  • 点击导出按钮,导出地图样式; 图形用户界面, 应用程序, Teams 描述已自动生成

步骤七、Mapmost SDK加载样式

7.1 Mapmost SDK加载示例

  • Mapmost SDK加载效果与代码展示; 图形用户界面, 应用程序, Teams 描述已自动生成

#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
<script src="https://delivery.mapmost.com/cdn/sdk/webgl/v9.4.1/mapmost-webgl-min.js"></script>
</head>
<body>
<div id="map"></div>
<script>
let map = new mapmost.Map({
container: 'map',
center: [114.13358978380347, 22.283166218948566],
zoom: 14,
style: "https://studio.mapmost.com:443/mms-style/1743052815295-15189827268-customStyle.json",//更改为自定义的地图
userId: '***' // 授权码
});
</script>
</body>
</html>