Here api 如何更改KML Reader在Here API映射上创建的默认图标?或者替换一个图像?

Here api 如何更改KML Reader在Here API映射上创建的默认图标?或者替换一个图像?,here-api,Here Api,我使用KML文件在地图上加载placemarks,因此我不编辑单个标记。因此,我想更改图标的默认颜色和大小,默认为一个非常大的蓝色气泡。我尝试过在CSS文件中编辑图标条目,但没有成功 下面是我如何使用H.data.kml.Reader var defaultLayers = platform.createDefaultLayers(); var map = new H.Map(...); var behavior = new H.mapevents.Behavior(new H.mapevent

我使用KML文件在地图上加载placemarks,因此我不编辑单个标记。因此,我想更改图标的默认颜色和大小,默认为一个非常大的蓝色气泡。我尝试过在CSS文件中编辑图标条目,但没有成功

下面是我如何使用H.data.kml.Reader

var defaultLayers = platform.createDefaultLayers();
var map = new H.Map(...);
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
var ui = H.ui.UI.createDefault(map, defaultLayers);
var reader = new H.data.kml.Reader('/temp/pure-gas.kml');
reader.parse();
layer = reader.getLayer();
map.addLayer(layer);

您可以尝试如下方式覆盖CSS:

.H_ib_body {
width: 275px;
color:#FFFFFF
}

您可以尝试如下方式覆盖CSS:

.H_ib_body {
width: 275px;
color:#FFFFFF
}

无法更改默认图标的位图。您应该创建一个自定义图标,并将其用于所有标记。 要更改KML已解析对象,您可以使用
getParsedObjects()
方法获取所有已解析对象的数组,然后更新并将其添加到地图中,而不是将图层添加到地图中:

var svg=''+
'' +
'' +
'',
customIcon=新的H.map.Icon(svg{
大小:{w:13,h:18}
}),
group=新的H.map.group(),
reader=新的H.data.kml.reader('YOUR_-kml_文件');
reader.addEventListener('statechange',函数(evt){
if(evt.state==H.data.AbstractReader.state.ERROR){
console.log('KML读取器中的错误',evt);
}
else if(evt.state==H.data.AbstractReader.state.READY){
reader.getParsedObjects().forEach(函数(obj){
//假设所有解析的对象都是点几何图形
对象设置图标(自定义图标);
});
addObjects(reader.getParsedObjects());
map.addObject(组);
}
});
parse();

有关详细信息,请参阅和

无法更改默认图标的位图。您应该创建一个自定义图标,并将其用于所有标记。 要更改KML已解析对象,您可以使用
getParsedObjects()
方法获取所有已解析对象的数组,然后更新并将其添加到地图中,而不是将图层添加到地图中:

var svg=''+
'' +
'' +
'',
customIcon=新的H.map.Icon(svg{
大小:{w:13,h:18}
}),
group=新的H.map.group(),
reader=新的H.data.kml.reader('YOUR_-kml_文件');
reader.addEventListener('statechange',函数(evt){
if(evt.state==H.data.AbstractReader.state.ERROR){
console.log('KML读取器中的错误',evt);
}
else if(evt.state==H.data.AbstractReader.state.READY){
reader.getParsedObjects().forEach(函数(obj){
//假设所有解析的对象都是点几何图形
对象设置图标(自定义图标);
});
addObjects(reader.getParsedObjects());
map.addObject(组);
}
});
parse();

有关更多详细信息,请参见和

这里是我正在处理的问题,欢迎提出任何建议!注意:KML支持是我在这里使用的唯一原因。因此,必须从KML文件自动加载标记。这非常有效,我似乎无法以任何方式更改这些标记的属性。以下是我正在处理的内容,欢迎任何建议!注意:KML支持是我在这里使用的唯一原因。因此,必须从KML文件自动加载标记。这很有效,我似乎无法以任何方式更改这些标记的属性。我想你不明白我的困境:我没有手动添加标记。我正在使用KML支持自动添加数千个标记。对不起,您的问题没有描述如何加载KML文件,也没有描述如何使用它创建地图对象,因此我用创建带有自定义图标的标记的示例代码进行了回答。是否使用H.data.kml.Reader类加载文件?var defaultLayers=platform.createDefaultLayers();var-map=新的H.map(…);var behavior=newh.mapevents.behavior(newh.mapevents.mapevents(map));var ui=H.ui.ui.createDefault(映射,默认层);var读取器=新的H.data.kml.reader('/temp/pure gas.kml');parse();layer=reader.getLayer();map.addLayer(层);所以我用KML阅读器的示例代码更新了我的答案。请更新你的问题,包括KML阅读器。我想你不明白我的困境:我没有手动添加标记。我正在使用KML支持自动添加数千个标记。对不起,您的问题没有描述如何加载KML文件,也没有描述如何使用它创建地图对象,因此我用创建带有自定义图标的标记的示例代码进行了回答。是否使用H.data.kml.Reader类加载文件?var defaultLayers=platform.createDefaultLayers();var-map=新的H.map(…);var behavior=newh.mapevents.behavior(newh.mapevents.mapevents(map));var ui=H.ui.ui.createDefault(映射,默认层);var读取器=新的H.data.kml.reader('/temp/pure gas.kml');parse();layer=reader.getLayer();map.addLayer(层);所以我用KML阅读器的示例代码更新了我的答案。请更新你的问题,包括KML阅读器。我试图覆盖CSS,甚至加载了本地的,编辑过的CSS文件副本,但没有成功。似乎有一些Javascript强制标记具有默认的颜色、大小和形状。为什么更改H_ib_body会更改默认标记图标???我尝试覆盖CSS,甚至加载了本地的、编辑过的CSS文件副本,但没有成功。似乎有一些Javascript强制标记具有默认的颜色、大小和形状。为什么更改H_ib_body会更改默认标记图标????