我想创建一个谷歌地图的制造商使用字体真棒的符号。我想,它看起来在某种程度上是这样的:在谷歌地图中使用CSS字体真棒标记
我发现在Using Icon Fonts as Markers in Google Maps V3这个问题的解决方案,但是这需要包括一个.js文件是〜0.5 MB大,因此不可用于我。
我也发现这个解决方案:https://github.com/lvoogdt/Leaflet.awesome-markers但我不喜欢标记的风格。
我设法用CSS创建以下图片
<div style='display:inline-block;background-color:#08c;padding:10px;border-radius:20px;border:2px solid #FFF;color:#FFF;'>
<i class="fa fa-university" aria-hidden="true"></i>
</div>
但我不知道如何:
在底部用得到一个漂亮的白色指针CSS(如在紫色图标中)
t o在谷歌地图中使用这个CSS标记。我能想到的最好的方法是制作屏幕截图,使黑色背景透明并将其保存为png。但我想一定有更合适的方法来做到这一点?
编辑:我在评论中发现从Using Icon Fonts as Markers in Google Maps V3
我不认为这是可能的,这样做的一个方式,将提取 从字体的SVG属性令人敬畏的图标,然后使用SVG符号定义 google.maps.Symbol。然后你就可以使用它们 作为符号
我试过了,失败了。我使用unicode:f19c的bank图标。于是我运行结束fontawesome-webfont.svg并找到一个条目
<glyph unicode="" horiz-adv-x="2048" d="M960 1536l960 -384v-
128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5
45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-
768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851
-64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
按照提示创建marker symbols我试图
marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon: {
path: 'M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5
-19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-
768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-
1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-
1920v128q0 26 20.5 45t48.5 19h1782z'
}
});
有谁知道为什么我在这里没有图标?这是否可能导致创建一个图标,如上所述?
哇那看起来不错。你能解释一下这是如何工作的吗? – Adam
':之前'和':之后'是伪类。我已经创建了2个倒三角形,并将其放置在底部以创建所需的效果。 – Pugazh
谢谢。我只注意到圆圈和三角形之间的白色边界的过渡并不平滑。你知道如何纠正?我试图通过改变底部值和值14/16px,但我无法顺利。 – Adam