不同的字体来源 leaflet-awesome-marker 和 Leaflet-easy-button
Different font source leaflet-awesome-marker and Leaflet-easy-button
我在传单地图中使用了两个插件:Leaflet.awesome-markers 和 Leaflet.EasyButton.
我通过包含 css 文件并使用 css class:
为 Leaflet.EasyButton 的图标使用由 Fontastic 制作的本地字体
<link rel="stylesheet" href="/src/localIcons.css">
<script>
L.easyButton('<div class="icon1"></div>', function(btn, map){
map.setView([-21.12, 55.5], 10);
},'Réunion').addTo(mymap);
</script>
我想将 fontawesome 的字体用于 Leaflet.awesome-markers 图标,但我不知道如何同时使用这两个,除非我删除,否则 marker 的图标不会显示本地 css 包含在上面。
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<script>
var colorMarker = L.AwesomeMarkers.icon({
markerColor: black,
prefix: 'fa',
extraClasses: 'fas',
icon: 'times-circle'
});
</script>
看起来标记插件正在搜索我的本地字体 css 而不是使用 fontawesome 的图标。
这是向您展示问题的屏幕截图:
可能发生的是您使用 Fontastic 构建的自定义 Web 字体(您通过 localIcons.css
文件引用)与 Font Awesome 通常使用的一些字符重叠还有。
检查您的 localIcons.css
文件内容可能会提供解释:
- Font Awesome 字符的形式为:
"\f249"
- 如果您的自定义 Webfont 使用类似的模式(例如
"\f000"
),那么重叠的可能性非常高。
一个简单的解决方法是对其中之一使用 SVG,而不是 Web 字体解决方案。
对于带有 Leaflet.awesome 标记的 Font Awesome 5,您可以轻松调整插件以使用 JS+SVG 解决方案。参考:Using Leaflet.AwesomeMarkers plugin with Font Awesome 5?
但我猜你的自定义 Webfont 中可能没有那么多不同的自定义图标,在这种情况下,相反的做法可能更有趣,即使用你的自定义 SVG 和标准 Webfont for Font Awesome。
在 Leaflet Easy Button 中插入 SVG 图像应该没有问题。
如果出于某种原因您仍然想坚持使用 Webfont 方法,您可以尝试将您的自定义图标转换为不同字符集的其他服务,例如http://fontello.com/ 使用模式 \e800
.
我在传单地图中使用了两个插件:Leaflet.awesome-markers 和 Leaflet.EasyButton.
我通过包含 css 文件并使用 css class:
为 Leaflet.EasyButton 的图标使用由 Fontastic 制作的本地字体<link rel="stylesheet" href="/src/localIcons.css">
<script>
L.easyButton('<div class="icon1"></div>', function(btn, map){
map.setView([-21.12, 55.5], 10);
},'Réunion').addTo(mymap);
</script>
我想将 fontawesome 的字体用于 Leaflet.awesome-markers 图标,但我不知道如何同时使用这两个,除非我删除,否则 marker 的图标不会显示本地 css 包含在上面。
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<script>
var colorMarker = L.AwesomeMarkers.icon({
markerColor: black,
prefix: 'fa',
extraClasses: 'fas',
icon: 'times-circle'
});
</script>
看起来标记插件正在搜索我的本地字体 css 而不是使用 fontawesome 的图标。
这是向您展示问题的屏幕截图:
可能发生的是您使用 Fontastic 构建的自定义 Web 字体(您通过 localIcons.css
文件引用)与 Font Awesome 通常使用的一些字符重叠还有。
检查您的 localIcons.css
文件内容可能会提供解释:
- Font Awesome 字符的形式为:
"\f249"
- 如果您的自定义 Webfont 使用类似的模式(例如
"\f000"
),那么重叠的可能性非常高。
一个简单的解决方法是对其中之一使用 SVG,而不是 Web 字体解决方案。
对于带有 Leaflet.awesome 标记的 Font Awesome 5,您可以轻松调整插件以使用 JS+SVG 解决方案。参考:Using Leaflet.AwesomeMarkers plugin with Font Awesome 5?
但我猜你的自定义 Webfont 中可能没有那么多不同的自定义图标,在这种情况下,相反的做法可能更有趣,即使用你的自定义 SVG 和标准 Webfont for Font Awesome。
在 Leaflet Easy Button 中插入 SVG 图像应该没有问题。
如果出于某种原因您仍然想坚持使用 Webfont 方法,您可以尝试将您的自定义图标转换为不同字符集的其他服务,例如http://fontello.com/ 使用模式 \e800
.