【Ruby】Fontawesome 5 でマップに表示するマーカーを生成するGem


しずおかオンラインでRubyでWebサービスを開発しているKazuomatzです。いろいろな案件でGoogle MapやOpen Street Map、iOSのマップなどにマーカーを立てるわけですが、Google Mapのデフォルトのピンでは味気なく、かといって、一点、一点デザイナーに発注するのもあれなので、FontAwesomeを使ってマーカーを合成するライブラリーを作りました。

AwesomeMapMarker

AwesomeMapMarkerは、Google Map、Open Street Map、iOSのマップなどのマップに表示するマーカーをFontAwesomeを使って生成するライブラリーです。FontAwesomeのアイコンとマーカーの色、サイズを指定できます。
GitHub

必要要件

  • ImageMagick 6.9x
  • MiniMagick

インストール方法

Bundleでインストール可能です。

Gemfile
gem 'awesome_map_marker'

使い方

sample.rb
require 'awesome_map_marker'

image = AwesomeMapMarker.generate

#imageは、MiniMagick::Imageクラスのインスタンスです。
image.write('/path/to/save')

パラメータを指定しない場合は、以下のマーカーが生成されます。

パラメータ

パラメータはHashです。

パラメータ 説明
:type                                                     Fontawsomeのタイプを指定します。指定可能はタイプは、:fas(solid)、:fab(brand)の2種類のみです。省略時は、:fas(Solid)です。
:name                           Fontawesomeのフォン名("fa-smile-beam"など)を指定します. 省略時は "fa-map-marker-alt"です。
:fill_color                                           マーカーの色を16進数で指定します。例:"#ff0000". 省略時は "#e45340"です。
:size                                                                  正方形の辺の長さを指定します。省略時は128です。1024以上を指定すると1024と見做します。

戻り値

戻り値は MiniMagick::Imageのインスタンスです。
サイズを0に指定した場合や、fontawesomeに定義されていないnameを指定した場合はnilが返ります。

Solid iconの生成

image = AwesomeMapMarker.generate(type: :fas,
                                  name: 'fa-smile-beam',
                                  fill_color: '#5e4fab')

Brand iconの生成

image = AwesomeMapMarker.generate(type: :fab,
                                  name: 'fa-github',
                                  fill_color: '#000000')

サイズ指定

image = AwesomeMapMarker.generate( type: :fas,
                                   name: 'fa-pastafarianism',
                                   fill_color: '#b23892',
                                   size: 64)

色とアイコンの組み合わせで様々なマーカーが生成できるので、いろいろと活用できると思いますので、ぜひ使ってみてください。