数据图层解析渲染函数,通过layerId直接创建图层,目前支持热力图,蜂窝热力图,网格热力图和弧线图的创建,同时支持上述图层所有方法的使用,暂时只支持手动刷新页面的方式更新数据。
属性
| 名称 | 类型 | 说明 |
|---|---|---|
| layerId | String | 数据图层绑定Id |
| map | Map | 底图对象 |
返回值
| 类型 | 说明 |
|---|---|
| Promise | Promise 处于fulfilled状态时传递数据图层对象,若鉴权失败则传递null。 |
创建图层语法
创建图层对象,图层会自动添加到地图中并显示:
const dataLayer = TMap.visualization.createDataLayer(layerId, map);
方法调用示例
隐藏图层:
dataLayer.then(layer => {
layer.hide();
});
重新显示图层:
dataLayer.then(layer => {
layer.show();
});
删除图层:
dataLayer.then(layer => {
layer.remove();
});
销毁图层对象:
dataLayer.then(layer => {
layer.destroy();
});
可视化图层除了通过自定义的形式添加之外,还支持通过图层id来直接添加数据图层,同时还支持根据固定的时间间隔自动更新数据图层。
使用数据可视化功能,除地图SDK的基础库之外,还需要引入额外的可视化图层库:<QMapVisualPlugin/QMapPluginKit.h>
#import <QMapVisualPlugin/QMapPluginKit.h>
QVisualLayer *visualLayer = [[QVisualLayer alloc] initWithUID:@"图层ID"];
// 图层刷新数据时间最小时间间隔为15秒,默认为0,即不更新
visualLayer.interval = 30;
[self.mapView addVisualLayer:visualLayer];
数据可视化图层类提供了代理<QVisualLayerDelegate>,用于监听可视化图层的加载:
/**
* @brief 可视化数据图层加载时会调用此接口
*
* @param layer 可视化数据图层
* @param error 错误信息. 如果nil则成功。
* errorcode目前支持网络错误码, layerID无效: 2, 数据错误: 3
*/
- (void)visualLayerDidFinshLoading:(QVisualLayer *)layer withError:(NSError *)error;
当数据图层不需要显示时,可以把对应的数据图层在地图上移除,示例如下:
[self.mapView removeVisualLayer:visualLayer];
mMapView = (MapView) findViewById(R.id.map_view);
mTencentMap = mMapView.getMap();
mVisualLayer = mTencentMap.addVisualLayer(new VisualLayerOptions("xxxxxxxx") //xxxxxxxx为官网配置生成对应图层的图层id
.newBuilder()
.setAlpha(1)
.setLevel(OverlayLevel.OverlayLevelAboveBuildings)
.setZIndex(10)
.setTimeInterval(15)
.build());
mVisualLayer.setAlpha(0.9);
mVisualLayer.setLevel(OverlayLevel.OverlayLevelAboveLabels);
mVisualLayer.setLevel(OverlayLevel.OverlayLevelAboveBuildings);
mVisualLayer.setZIndex(10);
mVisualLayer.setTimeInterval(15);
mVisualLayer.setVisible(true);
mVisualLayer.clearCache();
mVisualLayer.remove();
添加数据可视化图层:https://developers.weixin.qq.com/miniprogram/dev/api/media/map/MapContext.addVisualLayer.html
移除数据可视化图层:https://developers.weixin.qq.com/miniprogram/dev/api/media/map/MapContext.removeVisualLayer.html
有帮助
没帮助