Papago R12 POI 地標檔格式說明 (20060628 加 Papaog V7)

昨天晚上花了一些時間, 研究了一下 R12 輸出 "我的地標" 的 POI 檔, 說明及格式如附檔, ODS 請用 OpenOffice.org 開啟, 內有輸出為 PDF 檔, 提供有心想寫地標整理工具的網友參考.

另外原本的經緯度資料格式有誤, 正確應該為 4 bytes 的長整數, 第 1 位元組為 Low Byte, 最後為 High Bytes. 附檔中已更正

PS: 該檔案是由 R12 PC 版輸出的地標檔研究出來的, PPC 應該也是相同的.


[更新記錄]

新增 Papago V7.5 之 POI 檔格式說明...

附加壓縮檔: Papago R12 + V7.5 POI 格式
ericosur 大的POI <-> CSV 轉換程式

在下依照您的說明去解POI檔內的資料,發現經緯度都解不出來,
您提到那是4 byte 的浮點數,想請教您那是哪一種格式的浮點數呢?

小弟使用 vc++ 6,它的 float byte format 與資料檔的似乎是對不起來。

是不是要加上什麼位移量或是單位不同?

感謝!
ericosur wrote:
在下依照您的說明去解...(恕刪)


Sorry, 剛剛稍微確認一下, 經緯數值應該如下, 各佔 4 Bytes, 應該是長整數, 第 1 byte 為低數值 (0-255), 第四為 High.

長整數算出數字後, 將尾數 6 位即為小數點以下的數字

如 01 01 00 00 => 1 + 1 x 256 + 0 x 65536 + 0 x 16777216 = 257 ==> 東經 0.000257 度

如 00 00 00 01 => 0 + 0 x 256 + 0 x 65536 + 1 x 16777216 = 16777216 ==> 東經 16.777216 度

所以東經 180.000000 度即為 180000000 之 16 進位數, 0095BA0A

北緯 90 度為 804A5D05
ericosur 大大可以先寫一個 POI 及可讓 Excel 匯入的文字格式 之間的轉換程式來應急一下嗎嗎?
呃~~~ 用 excel 寫程式不會哩... 在下只是看到有人把欄位公布出來,
就會手癢想 parse 資料出來,順便寫支小小程式自愚愚人 (我故意筆誤的,謝謝)。

格式清楚了,馬上來試試 ^_^。

你是說 POI <-> cvs 嗎?

POI -> cvs 應該沒問題了... 急的話請 PM...
ericosur wrote:
呃~~~ 用 exc...(恕刪)

是呀!! POI <--> CVS 即可啦, 那個類別可以直接保留 16 進位值就好.

先謝謝囉... ^ ^
ericosur wrote:
POI -> ...(恕刪)


剛剛想到, 如果把分類轉成 10 進位輸出為 CVS, 那可以在 Excel 中寫個自動轉換為文字的 Function.

PS: 似乎有 BUG, 某些字元會造成斷字而亂掉, 如宿舍的 "舍" 字, UTF-8 碼為 82 0D, 在 POI 檔中為 0D 82, 0D 會被當成結束而亂掉...我想應該把文字欄位的資料全當二進位數值抓會比較好.
建議用 0xA 跟 0xD 的組合當做斷行 (DOS mode)
因為不論是text mode或binary mode
都無法單看 0xD 來決定是否斷行
除非程式的輸入函式支援UTF-8
比如用JAVA來處理字串 (理論上應該可以)
阿福仔仔 wrote:
建議用 0xA 跟 ...(恕刪)


我是覺的在 POI -> CVS 中, 不需特別看文字的斷行, 因為 POI 中的資料欄位大小是固定的, 直接讀取即可, 當到 00 00 (NULL) 當做結尾即可.
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!