2008-07-31

ログ出力

こちらを参考にしてWhereNowのデータを KML形式で出力してみました。
 
GoogleEarthで表示させてみるとこんな感じに。
もう少し細かく保存するようにした方がよさそうですね。
 
ただ、GoogleマップではUTF-8でファイルを作成しないと読み込むことができないようです。
wcstombs()でマルチバイトに変換してみましたが、シフトJISで出力されるだけで Googleマップでは受け付けてもらえませんでした。
ZeroMemory(szWBuf, sizeof(szWBuf));
ZeroMemory(szMbBuf, sizeof(szMbBuf));
wsprintf(szWBuf, KML_DATA, data[i].dblLongitude, data[i].dblLatitude);
dwLen = wcstombs(NULL, szWBuf, 0);
wcstombs(szMbBuf, szWBuf, dwLen);
WriteFile(hKMLFile, szMbBuf, dwLen, NULL, NULL);

 
setlocale()を使えばいいのかなとも思ったのですが、うまくビルドできません。
WindowsMobileでは使えないのでしょうか?
 
理想的にはKMLファイルを作成してからモバイルGoogleマップで表示させたいのですが、モバイルGoogleマップでローカルのKMLファイルを読み込めるのかどうかもよくわかりませんでした。
 
まだまだ先が長そうです。
 

2 件のコメント:

tmyt さんのコメント...

こんにちは
WideCharToMultiByte() APIの第1引数をCP_UTF8でUTF8にできますよー

kazuaki さんのコメント...

tmytさん おはようございます。
情報ありがとうございます。

実は WideCharToMultiByte()も試したはずだったのですが、今 単純なプログラムで試してみると ちゃんとUTF-8で出力されていました。
早速 WhereNowに組み込んでみます。