codeforjapan / mapprint

80 stars 58 forks source link

JSONに未定義のカテゴリが地物に設定されている場合の表示異常の修正 #467

Closed Kanahiro closed 10 months ago

Kanahiro commented 10 months ago

概要 | About

動作確認方法 | How to check

「2021年 静岡県熱海市伊豆山 土砂崩れ 災害情報」を表示してみる。

スクリーンショット | Screenshot

Before

image

After

Screenshot 2024-01-06 at 23 32 04

matobaa commented 10 months ago

なるほど、入浴に含まれてしまっているのではなかったのですね、白地に白は気づきませんでした……ご指摘ありがとうございます!

とりいそぎ、二点ほど未解決な問題を検知しましたので共有します:

凡例ナビで「入浴施設」を選択すると、そのピンも含めて表示されてしまっている

image ↑この地図で、「凡例ナビ」→シャワーアイコンをクリックしたとき、 image ↑№8と№9のアイコンが残るが、№9は実は「携帯充電」なので残らないでほしい。

№1「避難所(茶)」 №7「入浴(桃)」 が判別できない

これが image

こうなってしまっています。 image

matobaa commented 10 months ago

ごめんなさい、1点目の「凡例ナビで「入浴施設」を選択すると、そのピンも含めて表示されてしまっている」は誤報でした。 以下のとおり、正しい動きでした。私が見誤りました。すみません。

伊豆山の元データ(geojson)をあたったところ、

Kanahiro commented 10 months ago

@matobaa

レビューありがとうございます。

№1「避難所(茶)」 №7「入浴(桃)」 が判別できない

これらの種別なんですが、config-JSONで未定義のFolder-nameが、KMLで定義されているのが根本原因のようです。「避難所(茶)~~」や「入浴(桃)〜〜」がそもそも定義されていない。なのでどちらもフォールバックされてしまっているものと思います。

https://github.com/codeforjapan/mapprint/blob/master/assets/config/2019-typhoon-19.json

今までも正しい色にはならず、本PR冒頭の症状が発生したようです。

Screenshot 2024-01-07 at 11 19 52

なので処理としては想定内です。修正するにはconfig-JSONを直すことになります。

matobaa commented 10 months ago

「№1「避難所(茶)」 №7「入浴(桃)」 が判別できない」について、 矢印をつけた ピンの色 がそれぞれ茶色と桃色になっていたのが、どちらもLightgreenになってしまっています。 [7bbd9e11fda55c4f3db8b700947b659b8791fcfd] で削除した実装がその区別を担っていました。

image

Kanahiro commented 10 months ago

@matobaa

了解です すると、マーカーと凡例色が異なるケースが生じますが、それは想定内でOKですかね?

Screenshot 2024-01-07 at 12 01 59

ピンはmarker-colorを参照して、凡例はカテゴリ色を参照するような状態になります。

marker-colorはピンに着目した色設定なので、同一カテゴリであっても別の色があり得る実装になっていると思われますので、もしピンと凡例が常に同色である場合は、marker-colorの利用はすべきではないかもしれません。

Kanahiro commented 10 months ago

コードを読んでいくと、あまり考慮の足りてない実装のようなので、一旦クローズします。

(jsonに未定義のカテゴリの場合の処理が書いてあったが、それがどう利用されているのか、現状の挙動からまだ理解出来ていない。このあたり踏まえたコードじゃないと、よくない)