2011-07-10 6 views
1

私はアンドロイドが初めてで、キャンバスAPIを探しています。私は現在、 "MyMap"と呼ばれるアクティビティクラスと "MapView"(Viewを拡張する)と呼ばれるViewClassを持っています。Androidキャンバス - GPSの動きに基づいて点を描き、位置を変更するコールバック

MyMapアクティビティは、コンテンツビューをMapViewおよびMapViewに設定します。マップのビットマップイメージを使用してキャンバスを作成しています。次に、モバイルの現在のGPS座標に基づいてマップ上に円を描画します。私はgpsの座標が変わるたびにdraw()メソッドへのコールバックをどうやって行うのですか?また、このコードはMyMapのアクティビティやMapViewにも入りますか?あなたがする必要がどのような

+0

GPSアップデートを入手する方法や、GPSアップデートを取得した後に何かを行う方法をお尋ねしますか?また、あなたがマップビューのマップ上にマップを置くためにキャンバスを作成する理由について少し混乱していますか? MapviewはGoogleマップ用で、すべての地図描画を行います。 – Idistic

+0

私はgooglemapsを使用していません。マップタイルのビットマップイメージをロードします。私はその地図画像にyou-are-hereマーカーをプロットしたいと思います。モバイルが移動してgps座標を変更するたびに、私は地図にyou-are-hereマーカーを更新して電話機の位置 – cptham

答えて

0

は、GPSリスナー最初にセットアップされ、それに応える、あなたはそれについての情報を見つけることができ、ここでLocationManager

それは次のようになります。 GPSはバッテリーを吸うことを覚えておいてくださいあなたはセットアップがちょうどあなたがonLocationChangedリスナーに

を行うために必要なものを行うことをしたら、そこにこれより良いを行う方法がありますが、ここでの肉で、多かれ少なかれ

コードスニペット - あなたはポジショニングと半径

を決定する必要があります - 円絵画

import android.location.LocationListener; 
import android.location.LocationManager; 
import android.location.LocationProvider; 

public class gps extends Activity { 

    private LocationManager locManager = null; 

     public void onCreate(Bundle state) { 
      super.onCreate(state); 

      locManager = (LocationManager)App.getSystemService(Context.LOCATION_SERVICE); 
     } 

     LocationListener onLocationChange=new LocationListener() { 
     public void onLocationChanged(Location loc) { 

        // DO SOMETHING HERE with the updated location information to change your map 

      } 
     } 

     public onResume() { 
      startGPS(1000,1); // Every second or when we move 1 meter 
     } 

     public onPause() { 
      stopGPS(); 
     } 

     private boolean startGPS(long interval, float meterTrigger) 
    { 

     if (!locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) 
      return false; 



          locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,interval,meterTrigger,onLocationChange); 



       return true; 
     } 

     public void stopGPS() { 
     locManager.removeUpdates(onLocationChange); 
    } 

を完了していません3210

+0

に関連して移動します。画像上に描画するためのチュートリアルはありますか?基本的に私はちょうど電話のGPSが変わるたびに画像を描画しています。 – cptham

+0

@cptham描画する(円を描くなど)か、もう一方の上に1つのビットマップをオーバーレイしたいですか? – Idistic

+0

私は、ユーザーの場所を表す円を描きたい。文字を使ってビットマップイメージに円を描画します(マップになることがあります) – cptham

関連する問題