トップPC版地図アプリGIS > PC版地図アプリGIS開発記録

PC版地図アプリGIS開発記録

2025.2.16 道路の描画をほぼ完成した

道路名描画はこれから。

2025.2.16 OSMバイナリレコード作成にバグ混入か[解決]

地図の表示とバイナリレコード作成を一体化したが、 ハイズームではフォルダ数、ファイル数が3倍ほど増えた。

mid、low では誤りはなさそう。

japan-high12ではファイル数 22万、サイズ 13GB、ディスク上のサイズ 3.4GBとなった。 誤ったフォルダに同じレコードが保存されているようだ。

以前は xフォルダは 3430~3800、これが 3226~3830 に増えている。

railway=subway を railway=rail と同格にしたが、このとき、バグが混入したのかもしれない。


ディレクトリを変更したが、宣言があちこちに分散しており、この修正漏れが原因かもしれない。

レンダリングに使わない巨大なリレーションレコードは除外しているが、この処理に不具合が起こり、 このレコードが無数のファイルになっている可能性が高い。

kanto-high12でもファイル数 20万、サイズ 10GBになる。重複が多いレコードは high12 ではなく、high8 に置くはず。

relation処理を止めたが、状況は大差なかった。

Encoder結果はファイルサイズは同じであるが、中身に違いはないか、コマンドプロンプトでバイナリチェックしてみる。

C:\Users\hatad>fc \map\obf1\kanto\way.obf \gisdata\obf\kanto\way.obf /b
ファイル \MAP\OBF1\KANTO\way.obf と \GISDATA\OBF\KANTO\WAY.OBF を比較しています
FC: 相違点は検出されませんでした

Encoderには問題がないことが確認できた。やはり、Parser に問題がある。

53KBのあやしいファイルをダンプしてみた。差分化のために、ノードを挿入するため、同じパターンが続くことはありうる。 レコード末尾(タグ部)に 「Southeast Asia-Japan Cable」となっている。 アジア地域を結ぶ光海底ケーブルのようだ。航路と同じく、巨大なラインレコードのようだ。

タグは man_made=pipeline; substance=cable; … であろうか?

多分、これまでは、タグではねていたのであろう。なにかのはずみで抽出されるようになったのであろう。

しかし、なぜ、high8 に置かれないのだろう。

/mh/bin/dump /gisdata/dat/kanto-high12/3226/1622.dat

引数の順番を間違えていた。

//new Parser().parse(selectedArea, "high", 8, 12);
new Parser().parse(selectedArea, "high", 12, 8);
   < way id="1324108117" visible="true" version="1" changeset="157919807" timestamp="2024-10-15T12:50:55Z" user="wvdp" uid="436419">
   < nd ref="12252877455"/>
   < nd ref="12252877454"/>
   < nd ref="12252877453"/>
   < nd ref="12252877452"/>
   < nd ref="12252877451"/>
   < nd ref="12252877450"/>
   < nd ref="12252877449"/>
   < nd ref="12252877448"/>
   < nd ref="12252877447"/>
   < nd ref="12252877439"/>
   < nd ref="12252877446"/>
   < nd ref="12252877445"/>
   < nd ref="12252877435"/>
   < nd ref="12252877433"/>
   < nd ref="12252877444"/>
   < nd ref="12252877443"/>
   < nd ref="12252877429"/>
   < nd ref="12252877442"/>
   < nd ref="12252877428"/>
   < nd ref="12252877427"/>
   < nd ref="12252877412"/>
   < nd ref="12252877426"/>
   < nd ref="12252877425"/>
   < nd ref="12252877424"/>
   < nd ref="12252877423"/>
   < nd ref="12252877422"/>
   < nd ref="12252877421"/>
   < nd ref="12252877420"/>
   < nd ref="12252877419"/>
   < nd ref="12252877418"/>
   < nd ref="12252877417"/>
   < tag k="communication" v="line"/>
   < tag k="name" v="Southeast Asia-Japan Cable"/>
   < tag k="seamark:cable_submarine:category" v="fibre_optic"/>
   < tag k="seamark:type" v="cable_submarine"/>
   < tag k="short_name" v="SJC"/>
   < tag k="submarine" v="yes"/>
   < tag k="telecom:medium" v="fibre"/>
   < tag k="wikidata" v="Q7390539"/>
   < /way>

2025.2.14 記録開始

リファレンス