テーマ:プログラミング

VB6のVariant型をバイナリ保存した際のヘッダ

VB6特有のデータ型にVariant型がありますが、バイナリ保存した際に他の言語から取得する際にはヘッダを見て実際の型を判別する必要があります。 そこで、ヘッダバイトとデータ型の対応を調べてみました。 0:empty 1:null 2:Integer 3:Long 4:Single 5:Double 6:Curr…
トラックバック:0
コメント:0

続きを読むread more

緯度経度からメッシュコードへ

いつも緯度経度からメッシュコードに変換するのに試行錯誤してしまうので、メモ。 Dim lat1 As Integer = Int(LatLon.Latitude / (40 / 60)) Dim lat2 As Integer = Int(LatLon.Latitude / (5 / 60)) M…
トラックバック:0
コメント:0

続きを読むread more

国土地理院の標高API

国土地理院のWebサービスである標高APIは、緯度経度を送るとその地点の標高を返してくれる便利なサービス。 http://portal.cyberjapan.jp/portalsite/info/dem.html Google Maps APIでも標高を取得できますが、日本国内なら国土地理院のデータがより確実でしょう。 …
トラックバック:0
コメント:5

続きを読むread more

Google Maps APIのエンコード化ポリラインアルゴリズム

Google Maps APIでは線や多角形を描けますが、緯度経度の座標が多くなると、ファイルが座標で埋め尽くされてしまいます。そこで、座標を圧縮する方式として、エンコード化ポリラインアルゴリズムが用意されています。この方法では、座標列は文字列に置き換えられます。 Google Maps API V3では、ジオメトリライブラリを組…
トラックバック:0
コメント:0

続きを読むread more

Googleマイマップで作ったような分布図を、マイマップでない方法で作る方法

ジオコーディングのページおよび緯度経度から地図化のページで゜、表示した分布図をそのままウェッブサイトとして表示できる「HTMLデータ取得」機能を作成しました。 http://ktgis.net/gcode/lonlatmapping.html ポイントを表示しておいて、「HTMLデータ取得」をクリックすると、テクストボックス…
トラックバック:0
コメント:0

続きを読むread more

「Google Maps APIを使ったジオコーディングと地図化のページ」を作成

「Google Maps APIを使ったジオコーディングと地図化のページ」を独立させ、 http://ktgis.net/gcode/ に移しました。なかなかよい出来映えですので、使っていただけると嬉しいです。 これまでの同様なサービスでは、 ・Google Maps APIを利用していても、一カ所ずつしか変換で…
トラックバック:0
コメント:0

続きを読むread more

Option Explicit

「モジュール内のすべての変数に対して、明示的な宣言を強制します」というステートメントです。 ある時期から、Option Explicitを使うようになったのですが、それ以前は使っておらず、変数を宣言せずに使っておりました。 最近プログラムをチェックしていたら、単純な変数のスペルミスによるバグが見つかり、やっぱりOption …
トラックバック:0
コメント:0

続きを読むread more

基盤地図情報25000WMS配信サービスと歴史的農業環境閲覧システム

オルソ化空中写真ダウンロードシステムが3月末でクローズしてしまったので、MANDARAの背景画像が一つ少なくなってしまいました。 そこで、ほかのWMSでも使ってみようかなと思いまして、 独立行政法人農業・食品産業技術研究機構が作成された「基盤地図情報25000WMS配信サービス」 http://www.finds.jp/w…
トラックバック:0
コメント:0

続きを読むread more

文字の縁取りAPI

VB6およびAPIのフォント設定では文字の縁取りができませんが、BeginPath を使った方法があるそうなので、作ってみました。 Dim OFont As Long,hnfont as Long Dim O_HDC As Long Dim TX as String Dim X as Long, Y as Long D…
トラックバック:0
コメント:0

続きを読むread more

Windows7にVB6IDEをインストールした記録

VB6の開発環境IDEをWindows7にインストールしてみました。 とりあえず、CDから通常の方法でインストールします。MSDNも入れておきます。 実行してみると、ちゃんと起動しました。ヤッタ! 実際に既存コードを開いてみます。 OCXが読み込めないようです。レジストリに登録しないといけませんね。 登録しても…
トラックバック:0
コメント:0

続きを読むread more

等値線の塗りつぶし表示

前回等高線を面形状で取得できるようになったと書きましたが、 http://standardization.at.webry.info/201003/article_11.html 同じ方法を使って等値線モードで塗りつぶしができるようになりました。 試しに地価変動率を地図化してみました。 等値線だと、サンプル地点が…
トラックバック:0
コメント:0

続きを読むread more

ついに等高線が面形状で取得できるようになりましした(^o^)

先月からやっていた等高線の取得プログラムですが、ついに等高線を面形状で取得できるようになりました。 等高線を取得するだけなら、10年以上前にできてましたが、面形状にするのはかなり難しいのです。しかし先週アイデアを思いついて、コーディングは1日でした。 MANDARA生活苦節18年、ここまで進歩したかと思うと感激です。 こち…
トラックバック:0
コメント:0

続きを読むread more

四分木

各種標高メッシュデータから等高線を作成する際に、取得する等高線の値をメッシュの全てのセルに対して検索をかけると、ものすごく時間がかかります。 実際に等高線を引くのは、隣接メッシュの標高が引きたい等高線の標高を挟む場合に限られるので、全セルの中でそうした箇所は少ししかありません。 そこで、空間を効率的に探索できる「四分木」を使…
トラックバック:0
コメント:0

続きを読むread more

MANDARAでSRTMから等高線を描く

MANDARAでは数値地図メッシュから等高線ベクトルデータを作成できるのですが、数値地図は有料です。 最近では基盤地図情報10mメッシュ標高が無料でダウンロードできるようになったので、MANDARAで使えるようにしてみました。これは意外と簡単で、50mメッシュとほぼ同じパターンを踏襲できたので3時間くらいのプログラミングでできまし…
トラックバック:0
コメント:0

続きを読むread more

ソフトウェア論文

こちらのプログに http://www.geekpage.jp/blog/?id=2010/2/1/1 「コンピュータソフトウェア」の特集「ソフトウェア論文」が紹介されていたので見てみました。 http://www.jstage.jst.go.jp/browse/jssst/26/4/_contents/-char/j…
トラックバック:0
コメント:0

続きを読むread more

ストリートファイターII

以前、スペースハリアーについて書いたことがありましたが、 http://standardization.at.webry.info/200905/article_2.html 今度はスーパーファミコン版の「ストリートファイターII」をダウンロードしてみました。 ストリートファイターIIは1991年にアーケード版が登場し…
トラックバック:0
コメント:0

続きを読むread more

GetDeviceCapsのSHADEBLENDCAPS

WindowsAPIの透過処理を行うAlphaBlend関数が利用できるかどうかを調べるには、GetDeviceCapsにSHADEBLENDCAPSを渡せばよいと思っていました。 2000やXPではうまくチェックできましたが、VISTAではチェックできないようです。 MSDNで見ると http://msdn.micros…
トラックバック:0
コメント:0

続きを読むread more

Windows7のインストールと動作確認

現在、Windows7のベータ版がダウンロードできるので、MANDARAと今昔マップ2の動作確認のためにダウンロードして、インストールしてみました。 インストールしたパソコンは、5年くらい前に10万円ほどで購入したDell Inspiron 1150です。OSはXP、CPUはCeleron、メモリは512MB、というかなりの低スペ…
トラックバック:0
コメント:0

続きを読むread more

「今昔マップ2」が「窓の杜」に収録されました

「今昔マップ2」が「窓の杜」に収録されました。 http://www.forest.impress.co.jp/lib/home/mptrnspt/mapviewer/konjakumap.html 日本においては、「窓の杜」に収録されてこそ、メジャーなソフトと言えますので、目出度いことです。 一方、「今昔マップ2」の…
トラックバック:0
コメント:0

続きを読むread more

スペースハリアー

Wiiで昔のアーケードゲームがダウンロードできるらしく、その中にスペースハリアーがあったのでダウンロードしてみました。 1985年発売の体感ゲームですが、その後パソコンやファミコン版が登場していきます。 その頃私は高校生で、「コンピューター部」という部活でパソコンでプログラミングしていたのですが、高校にあったのはPC…
トラックバック:0
コメント:0

続きを読むread more

MANDARA次バージョン予告編 背景画像が可能に

なにやら、VB6ランタイムは次のWindows 7でもサポートされるらしいので、 http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx あと5年くらいはMANDARAも安泰かな~。 7ではサポートしません、と言われれば、仕方ないから別言語に移行しよ~、ということになりますが、7…
トラックバック:0
コメント:0

続きを読むread more

GetDeviceCaps関数

覚え書きです。 GetDeviceCaps関数を使えば、デバイスのAlphaBlend, StretchBlt関数の利用の可否がわかる。 http://msdn.microsoft.com/ja-jp/library/cc428670.aspx StretchBltが使えないプリンタでは、メモリ内で拡大してから、BitBl…
トラックバック:0
コメント:0

続きを読むread more

VISTAでRegsvr32を使用する

VISTAでRegsvr32を使ってレジストリにOCXを登録しようとしました。 コマンドプロンプトかと思ってやってみますが、エラーとなります。 結局、スタートメニューの検索ボックスに regsvr32 ・・.ocx と入力し、Ctrl+Shiftを押しながらEnterをすると、管理者モードで実行できて、レジストリに登…
トラックバック:0
コメント:0

続きを読むread more

Windows 7

VISTAの次のWindows OSは、Windows 7(セブン)で、来年初めに発売されるそうです。 少し前まで、ベータ版がダウンロードできたのですが、もうできないようです。 Windows 7はVISTAを基に開発されているそうですが、ネット上では割と好評です。 パソコンを買うなら、しばらく買い控えて来年にWindows …
トラックバック:0
コメント:0

続きを読むread more

パソコン雑誌「ip!」に「今昔マップ2」が収録

最近発売されたパソコン雑誌「ip!」のDVDに「今昔マップ2」を収録していただいた。 「今昔マップ2」の雑誌収録は初めてなので、一部送ってもらった。 パソコン雑誌も、昔は買っていたが、最近はほとんど買っていないし、立ち読みもしなくなってしまった。インターネット時代では、パソコン雑誌程度の情報は、検索すれば出てくるから、出版社もた…
トラックバック:0
コメント:0

続きを読むread more

演算子の比較

よく使うプログラミング言語の、VB・JavaScript・PHP演算子の対応関係を一覧にしてみた。 JavaScriptとPHPはだいたい同じようだ。 VBJavaScriptPHP 比較演算子等しい=== ==等しくない<>!= != または <>より小さい>> >以下&g…
トラックバック:0
コメント:0

続きを読むread more

VB6ユーザーコントロール

MANDARA9.0から自作のVB6ユーザコントロールを作成して組み込んでいる。 ユーザーコントロールを作ると、とても便利である。 が、意外な落とし穴があった。 OCXファイルはレジストリに登録しないと使えないのである。 これまで、他大学の授業では、USBメモリにMANDARA本体を置いて実行していたのだが、Ver8…
トラックバック:0
コメント:0

続きを読むread more

8086アセンブリ言語の昔話

中学生(80年代中頃)の頃からプログラミングをやっているが、中学生から大学生の間は8086アセンブリ言語とN88BASICの組み合わせでゲームなどを作っていた。 アセンブリ言語は機械語に一対一で対応しており、機械語に変換して実行する。その変換を行うには、自分で変換表を見て数字を入力する「ハンドアセンブル」と、アセンブルを行うプログ…
トラックバック:0
コメント:0

続きを読むread more