准备
介绍
全程只用一个标记:
- 取消勾选
Use marker image function
- 默认是勾选的
- Custom marker image处上传图片
-
根据字段变化图标
勾选
Use marker image function
修改 Marker image function中的脚本(根据脚本选出image的下标)
var speed = dsData[dsIndex]['speed'];
var res = {
url: images[0],
size: 55
};
if (typeof speed !== undefined) {
var percent = (speed - 45)/85;
var index = Math.min(2, Math.floor(3 * percent));
res.url = images[index];
}
return res;
上传图标到Marker images
效果
代码
虽然这样修改可以解决一个地图图表的问题,但是如果只用默认且固定的图标,每次都得上传图片,还是比较麻烦。
直接修改代码即可。
ui-ngx/src/app/modules/home/components/widget/lib/maps/markers.ts
createColoredMarkerIcon(color: tinycolor.Instance): { size: number[], icon: Icon } {
return {
size: [21, 34],
icon: L.icon({
//替换此处iconUrl,这是图标
iconUrl: 'https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|' + color.toHex(),
iconSize: [21, 34],
iconAnchor: [21 * this.markerOffset[0], 34 * this.markerOffset[1]],
popupAnchor: [0, -34],
//替换此处shadowUrl,这是图标阴影
shadowUrl: 'https://chart.apis.google.com/chart?chst=d_map_pin_shadow',
shadowSize: [40, 37],
shadowAnchor: [12, 35]
})
};
}
可能的问题
想使用固定图标
勾选了Use marker image function
没有修改 Marker image function中的默认脚本
导致图标显示不出来。仔细看前面的步骤,就没问题了。
![不点赞美女哭了.jpg](https://cdn.nlark.com/yuque/0/2021/jpeg/1453676/1618726151419-b0ffd3fb-b94b-485b-930a-eb55b8c1a22f.jpeg#align=left&display=inline&height=271&margin=%5Bobject%20Object%5D&name=%E4%B8%8D%E7%82%B9%E8%B5%9E%E7%BE%8E%E5%A5%B3%E5%93%AD%E4%BA%86.jpg&originHeight=271&originWidth=509&size=11471&status=done&style=none&width=509)