Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた

Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた。

Visual Studio 2019でDxLibを使ってみた、という話の続き。

地図画像のデータは、Google Maps Static APIを使って取得する。
Google Maps Static API v2を使ってみた

そして、取得した画像をDxLibのDrawRotaGraph2という機能を使って、回転表示させてみた。

ソースコードは、以下のような感じだ。

#include "dxlib/DxLib.h"

extern int Get_GoogleMaps_Pict(double lat,double lng,int maptype);

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
	int GrHandle;
	char fname[1024];
	double map_direction=0;
	double lat,lng;
	
	ChangeWindowMode( TRUE ) ; // Window MODE
	if ( DxLib_Init() == -1 ) { // init
		 return -1;	// Error
	}
	SetDrawScreen( DX_SCREEN_BACK ) ;
	SetWindowSizeChangeEnableFlag( TRUE );
	ScreenFlip();
	lat = 35.1704;   lng = 136.882; // 名古屋駅の緯度,経度
	if (Get_GoogleMaps_Pict(lat,lng,3)== -1) { // Googleから地図画像を取ってくる
		MessageBox(0,"Map picture download error (Cannot access google.com)",0,0);
	}
	strcpy(fname,"map_pict.png");
	GrHandle=LoadGraph(fname);
	
	map_direction=0;
	while (1) {
		map_direction--;
		if (map_direction<0) { map_direction+=360; }
		SetDrawArea( 0 , 0 , 640 , 480) ;
		ClearDrawScreen();
		SetDrawArea( 120 , 30 , 120+401 , 401 ) ;
		DrawRotaGraph2( 200+120,200+30 /* 表示位置-中心 */ ,  300, 300  /* 画像データの回転中心 */
					, 1.00 /* 拡大 */ , map_direction /180.0 * 3.14159265 /* 回転角 */
					, GrHandle, FALSE, FALSE);
		ScreenFlip();
		if (ProcessMessage() == -1) { break; }
		if( CheckHitKey( KEY_INPUT_ESCAPE ) != 0 ) { break; }// ESC key to quit
		Sleep(100);
	}
	DxLib_End(); // finish
	return 0;
}

このソースコードだと、画像を一定速度で回転させるだけだが、電子コンパスとかと連動させると地図をPCの向きにあわせて動かすことができる。
昔、そんなのを作ってみたのだった。
ネットブックにGPSと電子コンパスを接続してみる




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

47 + = 56