使用 Here 开发人员网站上提供的示例代码,我正在显示邮政编码边界。
我想要做的是掌握放置在质心处的标记以更改图标,但我在文档中找不到任何表明如何做到这一点的内容。
到目前为止,代码看起来像这样,并且与此处的文档中的代码几乎相同(https://developer.here.com/documentation/maps/3.1.15.1/dev_guide/topics/fleet-telematics-advanced-data -sets.html ):
showPostcodes() {
const service = this.platform.getPlatformDataService();
const bubble = new H.ui.InfoBubble(this.map.getCenter(), {
content: ''
});
bubble.close();
this.ui.addBubble(bubble);
const style = new H.map.SpatialStyle();
// create tile provider and layer that displays postcode boundaries
const boundariesProvider = new H.service.extension.platformData.TileProvider(
service,
{
layerId: 'PSTLCB_GEN',
level: 12
},
{
resultType:
H.service.extension.platformData.TileProvider.ResultType.POLYLINE,
styleCallback: function (data) {
return style;
}
}
);
const boundaries = new H.map.layer.TileLayer(boundariesProvider);
this.map.addLayer(boundaries);
// create tile provider and layer that displays postcode centroids
const centroidsProvider = new H.service.extension.platformData.TileProvider(
service,
{
layerId: 'PSTLCB_MP',
level: 12
},
{
resultType:
H.service.extension.platformData.TileProvider.ResultType.MARKER,
styleCallback: function (data) {
return style;
}
}
);
const centroids = new H.map.layer.MarkerTileLayer(centroidsProvider);
this.map.addLayer(centroids);
centroidsProvider.addEventListener('tap', function (ev) {
const marker = ev.target;
console.log(marker);
bubble.setPosition(marker.getGeometry());
const str =
'<nobr>Postal code: ' +
marker.getData().getCell('POSTAL_CODE') +
'</nobr><br>' +
'<br>';
bubble.setContent(str);
bubble.open();
});
},
我尝试在 centroidsProvider 上的更新时添加一个事件侦听器,但这似乎并没有产生已更新的标记,或者如果确实如此,它们被埋在该对象的某个地方,我看不到任何文档可以告诉我在哪里。
那么,简而言之,如何更改以这种方式创建的标记的默认图标?