× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
最初からその1、その2とかにすれば良かった。
今回はプロジェクトに対して必要な処理(作業?コード?)を書いていきます。 なにはともあれマニフェストファイルの設定。 こんな感じ。 「自分のプロジェクトのパッケージネーム」というのはcom.example.sampleなどプロジェクトを作る際に設定してるアレです。 自分のAPIKeyはGoogleAPIConsoleで作ったやつです。 GitHubに上がってます。このままじゃ動きません。 AndroidManifestファイル PR |
自分のPCで開発したい人用ガイド
参考URL ・本家 Google Maps Android API v2(英語)■ ・参考その1 throw life(日本語)■ ・参考その2 (日本語) ■ 導入までの参考はその1。 API独自のクラスやメソッドに関してはその2を参考に。 詳しく知りたければ本家を翻訳使いながら見る。 Androidの自アプリ内に実装する場合に事前に必要な物 ・Googleのアカウント ・SHA1フィンガプリント 〜Eclipseで開発するための手順〜 手順1:Eclipseで以下 ①EclipseのSDKマネージャを起動。このアイコン→ ②リストの中の最下部のフォルダ "Extras" 内の "Google Play Services"と"Android Suport Library"をインストール(installedならインストール済みなのでインストールしなくてok。画面はインストール済み) ③プロジェクトを作成。APIKeyを取得する際にpackage nameが必要になるため。 手順2:ターミナルで以下をする(SHA1フィンガプリントの取得をする) ①アプリケーション→ユーティリティ→ターミナルを起動 ②このコマンドを打つ($マークは抜いてスペースから) $ keytool -list -v -keystore ~/.android/debug.keystore ③文字化けしなければ「キーストアのパスワードを入力してください」と出る。デフォルトはパスワードないはずなのでそのままenterを押す。文字化けしてもenter ④文字化けすると分かりにくいがいっぱい文字が出て来たら成功。今回必要なフィンガプリントは「SHA1:」の後から始まる20個の16進数。コレをコピペするなり保存するなりする。 (ここは画像省略) 手順3:Google Services Consoleにアクセスする(APIKeyの取得) ①Google Services Consoleにアクセス ②Googleアカウントでログイン ③https://code.google.com/apis/console/######### (#は各々違う) のServices(左のリスト)を選択 表示されたAPIリストの中からGoogle Maps Android API v2を見つけスイッチをONにする。使用許諾が聞かれる。 ④APIAccess(左のリスト)を選択 下部にある4つのボタンのうち左から3番目の"Create new Android Key...をクリック ⑤ポップアップした画面に手順2で取得したSHA1フィンガプリントを貼付け、さらに";"(セミコロン)を入力し、その後にGoogleMapを実装したいプロジェクトのpackage nameを入力してCreateを押す。 例↓ ⑥成功すればポップアップ画面が消えAPIKeyが生成されている。 *ポイント パッケージ(プロジェクト)ごとに別のAPIKeyが必要。1つのAPIKeyを複数のプロジェクトで使い回すことは出来ない。(工夫すれば出来る) 手順4:EclipceにGoogleMapsのライブラリをインポート SDKのなかにライブラリが組み込まれている。(Googleの配っている緑のEclipseならEclipceフォルダ直下にSDKが入っている) ①SDKの/extras/google/google_play_services/libproject/google-play-services_lib を選択肢普通のプロジェクトをインポートするようにインポート ②Package Exploer上(Eclipseの左のリスト)で手順1で作ったプロジェクトを右クリックし"Properties"を選択。 ③ポップアップしたウィンドウの左のリストAndroidを選択し、下部右にあるaddボタンをクリック ④Project Selectionがポップアップするので表示されている"google-play-services_lib"を選択しOKをクリック ⑤先ほどのポップアップした画面の下部に"google-play-services_lib"が表示されているので選択しApplyをクリックしOKをクリック 手順5:プロジェクトのターゲットをLevel8以上のサポートにするためにサポートライブラリを設定する ①Package Exploer上(Eclipseの左のリスト)で手順1で作ったプロジェクトを右クリックしAndroid Toolsを選択し、"Add Suport Library..."をクリック(プログレスダイアログが表示される) ②Android Support Library, revision 13を選択、右側のAccept Licenseを選択しinstall 以上でプロジェクトへの設定は終わり。 これでやっと準備完了 |
AndroidでGoogleMapを自分のアプリ内で使いたく情報収集。
一言。使えるようにするまでの設定が面倒。 ただし使えるようにしたら割と簡単。(だとおもう) ☆自アプリ内での実装時に忘れがちなこと フラグメントを使うから3系4系以外の2.3.xとかもターゲットにするには 1、プロジェクトを作成 2、作ったプロジェクトを右クリック→プロパティ→androidを選択 3、右下のところでGoogle Play servicesをaddする 4、作ったプロジェクトを右クリック→Android Tools→AddSupportLibraryをクリック 5、Libsにandroid-support--v4.jarができたことを確認 6、対応しない場合なら「MapFragment」となっている物を「SupportMapFragment」に置き換える ポイントはMapFragmentクラスじゃなくてSupportMapFragmentクラスを使うので変数の型やゲッターの名前が変わる点。getMapFragment()がgetSupportMapFragment()になったり。 とりあえずもうちょいいじる。 |
ソモソモ自分のやってることの備忘録なので自分用以外の投稿は存在しなかった。
Contextについて。 intentの処理の際に引数としてMainActivity.thisとかgetApplicationContext()とかをつかうけどよくわからないのでググると同じような物で「今このアプリは何をしているのか?といったアプリ全体の情報をもっている」ものらしい。 ただしthisの方はActivityのcontextでgetApplicationContext()はアプリのcontextだそうで、でも内容はどうやら一緒。 ちがうのはライフサイクルに影響されるかどうかで、メモリーリークの面からもgetApplicationContextを使う方がいいよう。 非同期処理「AsyncTask」 参考にしたサイト http://android.keicode.com/basics/async-asynctask.php AsyncTaskの動き方 1、コンストラクタ 2、onPreExecuteメソッド(UIスレッド側) 3、doInBackgroundメソッド(ワーカースレッド側) 4、doInBackground内のpublishOnProgressメソッド(UIスレッド側のonProgressUpdateを呼ぶ) 5、doInBackgroundが終了し、onPostExecuteが呼び出される。(終了処理) 1 コンストラクタでContextにアプリの情報を設定させる。 2 onPreExecuteメソッドで非同期処理する前に思い処理をしていることが分かるようなプログレスバーな どのUI関連のインスタンス処理をする。 3 publishOnProgressメソッドでUIスレッド側に処理を反映させる。進捗状況や更新処理の内容など。 4 onProgressUpdateメソッドでUIスレッドにワーカースレッドの内容を反映させる 5 onPostExecuteにて終了処理 例えばプログレスバーを消したり。 |
ARアプリを作る第一段階として緯度、経度を取得。
それを元に、計算処理をして2点間の相対的な距離を導きだすというアプリを作りました。 ・地球は丸かった。 パラメータのLocationクラスは以下のようなパラメータを持つ。 ・緯度(Latitude) double 南緯がマイナス、北緯がプラスの値です。WGS84測地系で単位は度(degree) ・経度(Longitude) double 西経がマイナス、東経がプラスの値です。WGS84測地系で単位は度(degree) ・位置情報プロバイダ この位置情報を測定したプロバイダの名前 ・測位時刻 long 1970/1/1 0:00からのUTC時刻。単位はミリ秒。値はJavaのDate#getTime()と互換性があり。(UTCは協定世界時のこと日本標準時JSTは+9:00) 1970/1/1 0:00から何mm秒か?ということなのでちょっと扱いにくかった。 ・高度(Altitude) double 単位はメートル // 実用性なさそう。たぶん屋外じゃなければいけないので。 ・速度(Speed) float 単位はメートル毎秒 // 実用性が余りなさそう。 ・方位(Bearing) float 北を0として時計回りに東が90、南が180、西が270。単位は度。 ・精度(Accuracy) float 単位はメートル |
忍者ブログ [PR] |