未分類」カテゴリーアーカイブ

しまかぜの個室に幼児料金は必要か?

小学校に入学する前の幼児は、基本、電車の運賃がかかりません。
しかし、たとえば特急の指定席を取ろうと思えば、当然子供料金を払わなければなりません。

さて、近鉄電車にしまかぜという観光特急があります。
しまかぜは全席指定なので、普通に利用すれば幼児といえども子供料金が必要になります(親の膝に座らせられるなら不要ですが)。

しかし、しまかぜには3名以上で利用できる個室があります。
個室であれば幼児のための「座席」は要らないと解釈できるのではないか.・・・つまり、幼児は無料で乗れるのではないか?と思ったので、近鉄に電話して確認してみました。

結果は予想通り、幼児はしまかぜの個室を無料で利用できるとのことです。

つまり個室であれば、大人が3名以上いれば幼児が何人いても無料です。
もし、大人2名と幼児2名といったケースなら、幼児の一人を子供料金支払って”3名”にすれば、それで個室利用が可能になるので幼児一人分が無料になります。

また、ホームページなどには”幼児”は6歳未満と書かれていますが、これも電話で確認したところ、正確には未就学児(小学校入学前)ということでした。

個室には特別料金がかかるので「安く利用できる裏技!」というほどのお得感はありませんが、しまかぜの個室を利用したいと思っている家族連れなら知っていて損はない情報かと思います。

ionic v3 → v4 での ionViewCanLeave の書き換え

ionic v4 で ionViewCanLeave が無くなったので、代わりにどう書けばいいか苦労したのでメモ。

まずservice を作成。
can-deactivate-guard.service.ts

import { Injectable } from '@angular/core';
import { CanDeactivate } from '@angular/router';
import { Observable } from 'rxjs';

export interface DeactivationGuarded {
  canDeactivate(): Observable<boolean> | Promise<boolean> | boolean;
}

@Injectable()
export class CanDeactivateGuard implements CanDeactivate<DeactivationGuarded> {
  canDeactivate(component: DeactivationGuarded): Observable<boolean> | Promise<boolean> | boolean {
    return component.canDeactivate ? component.canDeactivate() : true;
  }
}


つぎに ionViewCanLeave を使用していたページ(たとえば TestPage)に “implements DeactivationGuarde” を追加し、”canDeactivate()” メソッドを記述する。

import { DeactivationGuarded } from '../services/can-deactivate-guard.service';

export class TestPage implements OnInit, DeactivationGuarded {

// このメソッドが ionViewCanLeave に相当する。
canDeactivate(): boolean | Observable<boolean> | Promise<boolean> {
  return true;  // false を返すとページの遷移をキャンセルできる。
}

そのページの routing-module.ts (上の例なら test-routing.module.ts)に “canDeactivate: [CanDeactivateGuard]” を記述。

import { CanDeactivateGuard } from '../services/can-deactivate-guard.service';

const routes: Routes = [  {
    path: '',
    component: TestPage,
    canDeactivate: [CanDeactivateGuard]
  }];

最後に、app.module.ts の providers に “CanDeactivateGuard” を追加する。

カーナビの地図データ更新

先日カーナビの地図データを更新したのだが、ちょっとモヤモヤしたというお話。

うちのカーナビはパナソニックのストラーダというSDメモリカードタイプのやつで、スバルの純正品(ビルトインタイプ)です。
地図データが古くなったので新しくしようと思い立ち、パナソニックのオンラインストアから「更新地図ダウンロードデータ」を購入しようとしたところ、購入ページに次のような注意書きがありました。

本更新地図は各カーメーカー純正のナビには対応しておりません。
地図更新に関してはナビご購入店様にお問合せください。

え?
慌ててスバルのサイトを確認すると、「必ずスバル販売店へ『パナソニックSDナビゲーション用バージョンアップMicroSDHCカード』のご注文を行ってください」と書かれています。
えー、うそー。
ダウンロードデータだと1万円程度のところ、この方法だと2万円近くかかります。

でもそんな純正かどうかで更新地図のダウンロードデータが使えるか使えないかなんて違いがあるのか?と。
メインシステムならいざ知らずだけど、地図データの扱いに純正かどうかで違いなんてないだろう、と。
現に無料更新分の地図データは(たぶん)同じです。

でも、万が一ということもあります。
純正品はダウンロードデータで更新できないように、わざわざプロテクトを掛けている可能性が無いではない。
それでも、もしダウンロードデータで更新できるなら無駄に高い方を買わされるのは癪なんで、思い切ってダウンロードデータを購入してみたところ、あっさりと問題なく更新できました。

じゃああの注意書きはなんだったんだ?と思うと、なんかモヤモヤする。
ダウンロードの場合、データの書き換えに失敗する人が多くて面倒くさいから「できない」ってことにしているのだろうか。

CSS アニメーションのイージング

CSSでアニメーションを作る際に easing の記述に便利なサイト。
http://matthewlein.com/ceaser/

標準で用意された easing は linear や ease-in-out など最低限のものしかなくて、例えば back や bounce を使いたいと思ったら cubic-bezier でパラメータを直接記述しなければならない。
しかし、これを感覚で行うのは無理。

上記のサイトを使えば、一般的に使われる easing のパラメータのズバリそのものを知ることができて便利。