LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-02-04

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

AwesomeMapMarker

icons.png

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". 省略時は #1589F0 "#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)

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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1