私は、(融合テーブルに保存された)関心のあるポイントをGoogleマップ上に表示する方法の例を探しています。 Fusion Tables v2 Googleマップ上のPOI:Androidの例?
がHTMLでこれを行うと、それは非常に些細なのJavaScript、チェックするために私の javascript map with fusion tables exampleを参照してくださいFusion Tables page containing my POIs
私の目標/質問はAndroidアプリで同じことを達成するためにどのように(それをコーディングで助けを必要とする)です。私はアンドロイドの開発に慣れていないので、すでに基本とドキュメントとサンプルを確認する時間を費やしています。
この非常に良いを確認してくださいGoogle Maps example for Android私は(私のテストアプリケーションは、このコードに基づいて)始めることがわかった。
Fusion Tables v2 reference(GoogleのAPIクライアントへのポイント)
Google API Java client samples on github(最も古く:V1の例)
は、これまでのところ、私は私の最後の既知の場所を中心にマップを表示するには、その上にマーカーを表示するために達成。
私は、このための良い例を見つけることができませんでしたので、私は公開と私の調査結果を共有し、参照することを決めた。firepol/android-google-maps-fusion-tables on github
今私はフュージョンテーブルからのマーカーを表示したいと思います。 Google apiクライアント経由でリクエストを実行しようとしています。
Google API client example for Android
ActivityFeed feed = listActivities.execute();
ここで(私はのonCreate内で置かれている)私のコード:
protected void prepareFusion() {
// Normally READONLY should be enough (see credential with one scope), but I checked online a console
// and I could see a public table only if I would grant both permissions
List<String> scopes = new ArrayList<>(Arrays.asList(FusiontablesScopes.FUSIONTABLES, FusiontablesScopes.FUSIONTABLES_READONLY));
credential = GoogleAccountCredential.usingOAuth2(this, scopes);
//credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(FusiontablesScopes.FUSIONTABLES_READONLY));
// TODO : get account name automatically
// http://stackoverflow.com/questions/35789071/getting-the-gmail-id-of-the-user-in-android-6-0-marshmallow
credential.setSelectedAccountName("YOUR_GOOGLE_ACCOUNT");
client = new Fusiontables.Builder(
transport, jsonFactory, credential).setApplicationName("TestMap/1.0")
.build();
try {
String tableId = "1774o_WcrqSQlepLXlz1kgH_01NpCJ-6OyId9Pm1J";
Fusiontables.Query.Sql sql = client.query().sql("SELECT FileName,Name,Location FROM " + tableId);
//sql.execute();
//java.lang.IllegalStateException: Calling this from your main thread can lead to deadlock
Fusiontables.Table.Get table = client.table().get(tableId);
table.setFields("items(FileName,Name,Location)");
//table.execute();
// TODO : can't execute like this on main thread as the documentation example "suggests"
//https://developers.google.com/api-client-library/java/google-api-java-client/android
} catch (IOException e) {
e.printStackTrace();
}
}
私は同じことを行うと(sql.executeを呼び出そうとした場合)、またはtable.execute ()私は得る:
java.lang.IllegalStateException:あなたのメインスレッド からこれを呼び出すデッドロックK
は、だから私はちょっとここにこだわって、あなたがマップ上の結果を得るために私を助けることができる場合、私はより良いGoogleのAPIクライアントとの経験を持っている誰かから続行する方法を知りたいです!ありがとうございました。
マップ上に融合表POIを表示するにはどうすればよいですか?
私がこだわっている場所を確認し、私を助け、私のgithubのレポfirepol/android-google-maps-fusion-tables on githubのクローンを作成し、Androidのメーカーで開き、独自のGoogleマップAPIキーとお使いのデバイス上でデバッグを追加します。あなたの建設的なコメント、回答、お手伝いをありがとう。自由にギットブップを押してください。
Thx。更新されたチュートリアルやコードサンプルを使ってAsync Taskをgoogle apiクライアントと一緒に使用しましたか?Robospiceなどを見て、実際にそれらを比較するための優れたイントロを見つけました:https://www.reddit.com/r/androiddev/comments/3d1iim/retrofit_volley_or_robospice_and_jackson_or_gson / – firepol