質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

受付中

自分のパソコン上の仮想サーバに自分の端末の位置情報を送りたい

per
per

総合スコア10

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

2回答

0グッド

0クリップ

2501閲覧

投稿2016/11/14 07:39

編集2016/11/14 08:42

###前提・実現したいこと
現在gpsを利用した鬼ごっこアプリを開発しています。下記のコードはメインのコードです。
「onLocationChanged」ってメソッドが、位置情報が更新されたときに呼び出されるものになります。
それが実行されると、現在地の緯度と経度を「latlng」っていう変数に格納して、その位置にマーカー(アイコン画像)を表示して、マップの真ん中に来るようにカメラを移動させるという動きをします。
###発生している問題・エラーメッセージ

latlngに格納した自分の位置情報を自分のパソコン上の仮想サーバに送るというプログラムをどうやってかけばよいか
わかりません。

###該当のソースコード
package ***;

import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;

import android.location.LocationProvider;
import android.os.CountDownTimer;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import android.location.LocationListener;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener {

private GoogleMap mMap; private Marker marker = null; private LocationManager locationManager; private TextView timerText; private int times; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,}, 1000); } else{ locationStart(); } SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); String time = sharedPreferences.getString("time", "3"); if (time.equals("3")){ times = 180000; }else{ times = 300000; } } public void onMapReady(GoogleMap googleMap) {

###補足情報(言語/FW/ツール等のバージョンなど)
・java
・Android Studio

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

0

LAN環境であれば、自分のパソコン上の仮想サーバとAndroidを同じネットワークに接続します。
仮想サーバでは位置情報を受け取るEndpointを用意してあげてください。

例:http://192.168.1.100/upload

そこにお好きな方法で位置情報をアップロードしてあげてください。

例:http://192.168.1.100/upload?LatLng=35.681298,139.7640582

インターネット環境を使いたいのであれば、グローバルIPアドレスからあなたの自分のパソコン上の仮想サーバ上まで届くようネットワークの設定をしてあげてください。
環境によりどう対応するか変わってきますが、直接グローバルIPを付けるも良し、NATしてあげるもよし。

あとはIPアドレスが変わるだけの話です。
http://xxx.xxx.xxx.xxx/upload?LatLng=35.681298,139.7640582

投稿2016/11/14 09:46

moonphase

総合スコア6619

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

ちょっと前の質問見て危なそうだなと思ったのでコメントさせていただきます。

awsはアカウント作成にクレジットカードが必要です。
後、MFA認証等で最低限のセキュリティ対策をしないとハッキングされて莫大な請求が来るという話も有りえます。

商用ならまだしも、aws上でサーバー立てるくらいなら、
自分のパソコン上で簡易サーバー立てる方がはるかに簡単です。
授業の課題ならその時だけ動いていれば十分でしょう。

投稿2016/11/14 08:29

編集2016/11/14 08:30
ishi9

総合スコア1290

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

per

2016/11/14 08:40

ご回答ありがとうございます。 確かに授業の発表でしか使わないので自分のパソコン上で仮想サーバを作った方がはるかに良さそうです。 そうしようと思います!
ishi9

2016/11/14 09:59 編集

クライアント側(今の質問)はサーバー側のAPIの仕様が決まればそう難しくはないですが、 サーバーができてないと書きようがありません。 まずは頑張ってサーバー側のプログラムを作る必要があります。 そして、「aws上で立てるくらいなら自分で立てる方がはるかに簡単」と言いましたが、 aws上で作るほうがはるかに面倒なだけで、自分で立てるのも(初めてだと)相当大変です。 1ヶ月は覚悟した方がいいと思います。 後、GPSは精度がかなり低いのはご存知ですか? 仮に全プレイヤーが100m四方の部屋(体育館でもちょっときつい?) にいたら見分けが付かないなんて普通に起こり得えます。 10m四方程度の教室だとほとんどゲームにはならないでしょう。 正直、かなり無謀に見えるので少し企画の内容を検討してみた方がいいかもしれません。

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。