0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

千葉市のPLATEAUデータ、結構ヤバい件について

Last updated at Posted at 2025-10-17

はじめに

こんにちは!千葉市在住の大学3年生です。
面白そうなコンテスト PLATEAU NEXT AWARD 2025 を見つけたので、「よーし、地元のデータで何か作ってみるか!」と思い、千葉市のPLATEAUデータを触ってみました。

すると、3D都市モデルのリアルさや網羅性に感動する一方で、開発者目線で見ると「おっと…これはなかなかヤバいぞ…」という点もいくつか見つかったので、供養も兼ねて共有したいと思います。


何がヤバかったのか?

早速ですが、僕が見つけたヤバいポイントは以下の3つです。

① GeoJSONのキーが日本語

まずはこちらのGeoJSONデータをご覧ください。避難所のデータの一部です。

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [140.130926, 35.585171]
  },
  "properties": {
    "レベル": 3,
    "住所": "千葉県千葉市中央区南町1丁目",
    "収容人数": "-1",
    "名称": "JFE健保千葉グランド一帯",
    "対象とする災害の分類": "指定なし",
    "施設の種類": "広域避難所",
    "施設規模": "-1",
    "行政区域": "12101",
    "高さ": "37.3"
  }
}

お分かりいただけたでしょうか...。 propertiesの中のキーが見事に日本語です。

これは、多くのプログラミング言語で data.properties.住所 のような直感的なアクセスができず、 data.properties['住所'] のように書く必要があったり、環境によっては文字化けのリスクも伴います。 おそらく、行政が内部で使っているGISソフトのテーブル定義がそのままエクスポートされた結果だと考えられますが、APIとして使うには一手間必要になりそうです。

② 数値が全部 "文字列" になっている

もう一度、先ほどの避難所データを見てみましょう。

{
  ...
  "properties": {
    ...
    "収容人数": "-1",
    ...
    "高さ": "37.3"
  }
}

高さ は明らかに数値(浮動小数点数)なのに、"37.3" と文字列(String)型になっています。 これでは、プログラム側で parseFloat() のような型変換をしない限り、大小比較や計算ができません。

さらに興味深いのが "収容人数": "-1" です。 おそらく「データなし」や「不明」を意味する値だと思われますが、それなら null を使うのが一般的です。-1 という値は、うっかり数値変換するとそのまま計算に使ってしまい、バグの原因になりそうです。

まとめ:これはむしろチャンスかもしれない

と、ここまで「ヤバい」点を挙げてきましたが、これはオープンデータを扱う上での「あるある」であり、文句を言いたいわけではありません。 むしろ、このコンテストにおいて、これらの課題は大きなチャンスだと感じています。

課題1(日本語キー) → 英語キーに変換するスクリプトを書く

課題2(データ欠損) → 他のオープンデータ(地理院地図など)で補完する

課題3(データ型) → 適切な型に変換し、-1のような値はnullに置換する

こうした「データクレンジング(前処理)」を丁寧に行い、そのプロセス自体も作品の一部としてアピールすることで、「不完全なデータを適切に扱える技術力」を示す絶好の機会になります。

もし同じようにPLATEAUデータを触っていて「うーん…」となっている方がいたら、その課題こそが面白い作品への入り口かもしれません。 僕もこの「ヤバい」データと向き合いながら、開発を進めてみようと思います。

※追記

整形したgeoJSONデータをGitHubに公開しました。
https://github.com/tatsukikitamura/chiba-geoJSON

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?