# 服务概述

图致服务基于图致(GeoStudio)平台,当用户在图致平台中完成数据导入以及样式编辑后,图致平台将基于这份数据以及样式生成图层,前端开发人员可以快捷的将这份图层叠加在地图中。

用户可以随时在图致平台中修改已经创建的图层,这些改动将会同步到开发人员的页面中,无需开发人员介入修改。

# 为什么要使用图致服务

相比较于前端开发人员直接获取裸数据,将数据转换为地图 SDK 支持的格式,再对这批数据进行可视化效果的呈现,图致平台支持:

  • 处理常见的数据格式,能够自动转换用户数据,完成数据治理
  • 简单易用的样式配置,丰富的展现数据的多个维度
  • 基于原始数据生成矢量瓦片服务,提高加载速度与页面性能
  • 为前端开发预处理了一些空间数据,实现了基于矢量瓦片的flyTofitView,支撑前端业务

# 如何获取

对于常用的且不易获取到的数据,例如上海市的区级行政区划,浦东新区的街镇区划,浦东新区的村居区划,图致平台已发布为通用图层服务,所有开发者都可以使用。使用说明参考图致通用图层服务

对于开发者的自有数据,可以参考图致自定义图层服务,来创建一份你自己独有的图层服务。

开发者可以在地图初始化,或者程序运行过程中使用。并且,前端开发者可以自定义一些样式,来覆盖原有的可视化效果。

# 在地图初始化时使用

如果开发者想在地图初始化之后立即使用图致图层,可以在地图初始化时直接引入一个或多个图致图层,在这些图层加载完之后,地图的 load 事件才会触发。

new aimap.Map({
    ...,
    layers: Array< SetLayerOptions | LayerJson >
});
1
2
3
4

# layers 参数说明

layers 参数为一个由 SetLayerOptions 或者 LayerJson 组成的数组。

# 示例

// 通过 id 加载
const map = new aimap.Map({
    container: 'map',
    center: [121.45713, 30.843095],
    style: 'aimap://styles/aimap/darkblue-v4',
    localIdeographFontFamily: "'Microsoft YaHei'",
    //这些id为在正式环境中图致平台里新建的图层 id ,直接放在这里即可显示出来这个图层
    layers: [{
        id: 'township-pudong'
    }]
});
1
2
3
4
5
6
7
8
9
10
11

# 在程序运行过程中使用

开发者也可以在程序运行过程中向地图添加图致图层,注意,这样添加图层是异步的,开发者需要在回调中获取到图致图层。

map.addGeoStudioLayer(layer: SetLayerOptions | LayerJson, callback);
1

# 参数说明

layerSetLayerOptions 或者 LayerJson

callback:图层加载成功或者失败后的回调,包含 error:错误信息,vectorLayer:矢量图层,这两个参数。

# 示例

map.addGeoStudioLayer({
        id: "f13258d5-c656-4da9-a38d-4b5c6f017d67"
    }, 
    (error, vectorLayer) => {
        // 可以进行以下的操作,vectorLayer等同于一个普通的图层。
        // vectorLayer.show();
        // vectorLayer.hide();
        // vectorLayer.remove();
        // 等等。
});
1
2
3
4
5
6
7
8
9
10

# 获取预定义图层对象

在开发过程中,开发者可以根据预定义图层的 id 获取到图层对象,此对象也就是示例中的回调结果。

map.getLayer(layerId: string);
1

# 示例

// 通过 id 加载
const map = new aimap.Map({
    container: 'map',
    center: [121.45713, 30.843095],
    style: 'aimap://styles/aimap/darkblue-v4',
    localIdeographFontFamily: "'Microsoft YaHei'",
    layers: [{
        id: '00e50267-eecf-4057-a70f-f4d38d127a80'
    }]
});

map.on('load', () => {
    // 可以根据 id 获取预定义图层对象
    const layer = map.getLayer('00e50267-eecf-4057-a70f-f4d38d127a80');
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# SetLayerOptions

名称 类型 说明
options.id string 图致服务对应的id,id 与 url 必选一个。
options.url string 图致服务的 url,适合调用在非公网环境下部署的图致服务,url 中最后一个分隔符后的字符串将作为 id。id 与 url 必选一个。
options.style Style 开发者自定义的图层样式,这些样式将会增量更新到原有的图致服务上。
options.filter Filter 图层的过滤语句。
options.minZoom number 地图中显示该图层的最小缩放级别。
options.maxZoom number 地图中显示该图层的最大缩放级别。

# LayerJson

LayerJson 实际上就是 SetLayerOptions 中的 id 或者 url 对应的服务请求到的结果,如果开发者试图在前端构造 LayerJson,或者开发者已经通过其他渠道请求到了 LayerJson 的信息,可以直接将 LayerJson 传入。

最后更新于: 7/6/2022, 10:50:05 AM