====== Programming tips ======
プログラミングでちょっと役に立つヒント。備忘録として書いておく。
===== OpenLayers =====
==== spriteの使い方 ====
[[https://openlayers.org/en/latest/apidoc/module-ol_style_Icon-Icon.html|Icon Style]]を指定する際、
new Icon({
src: 'symbols.png',
size: [icon.width, icon.height],
offset: [icon.x, icon.y],
のようにsrcでスプライト画像、size、offsetでスプライト画像中の矩形領域を指定する。これらのパラメータの設定は、Mapbox GL JSの[[https://docs.mapbox.com/mapbox-gl-js/style-spec/sprite/|sprite]]のJSONに合わせて、
{
"Summit" : {
"height" : 24,
"width" : 24,
"y" : 0,
"x" : 624,
"pixelRatio" : 1
},
:
}
のようなJSONファイルを読み込んで行うと、共通化の点で便利。
GeoJSONからアイコンの情報を読み込む際、[[https://github.com/gsi-cyberjapan/geojson-with-style-spec|スタイルつき GeoJSON 規約]]ではLeafletの仕様に合わせて _iconUrl というパラメータで画像URLを指定している。これは分かり易いが、スプライト画像が利用できないので良くない。_iconというパラメータで種別を指定するようにすべき。スプライト画像を使わない場合でも_iconから_iconUrlを得ることはLUTなどを用いて容易に実装でき、画像の置き場に関して自由度が増す。
===== ルート地図(地理院Vector+Mapbox GL JS) =====
地理院Vectorが全国整備されたので、サンプルを作ってみた。GeoJSONのレイヤを追加。追加レイヤに固有のスプライト画像を追加する方法が不明なので、取り敢えず使用するアイコン画像を個別にロードしている。高解像度モニタで見ると、やはりVectorの等高線は綺麗だ。