2016-07-01 10 views
1

私は現在の位置情報を開発者のアンドロイドページから定期的に取得でき、アプリの位置情報を認識できました。今、私の場所が変わるたびに、私はその場所の緯度と経度を得ることができます。しかし、私は誰がこれをGoogle Mapsで実装していますか?Googleマップ:現在の位置マーカー(GMapsの期間更新)

以下この行はmMap.setMyLocationEnabled(真の)私の現在の場所を見つけて、その上に青い点/マーカーを置き、私のマップ上のボタンを実装します(定期的に更新を受信しません)

青い点をで更新するには、onLocationChanged()イベントに何を書き込む必要がありますか?緯度経度?

答えて

2

青い点と精度の高い円はマップによって自動的に管理され、更新やシンボルの変更はできません。実際には、独自のLocationProviderを使用して自動的に管理されるため、利用可能な最良のロケーション解決が得られます(コードを書き換える必要はありません。mMap.setMyLocationEnabled(true);を使用して有効にしてください)。

あなたはそれはあなたがこのような何かを書くことができます行動だモックとしたい場合は(あなたはmMap.setMyLocationEnabled(false);をやって、私の場所層無効にする必要があります):

private BitmapDescriptor markerDescriptor; 
private int accuracyStrokeColor = Color.argb(255, 130, 182, 228); 
private int accuracyFillColor = Color.argb(100, 130, 182, 228); 

private Marker positionMarker; 
private Circle accuracyCircle; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // ... 

    markerDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.yourmarkericon); 
} 

@Override 
public void onLocationChanged(Location location) { 
    double latitude = location.getLatitude(); 
    double longitude = location.getLongitude(); 
    float accuracy = location.getAccuracy(); 

    if (positionMarker != null) { 
     positionMarker.remove(); 
    } 
    final MarkerOptions positionMarkerOptions = new MarkerOptions() 
      .position(new LatLng(latitude, longitude)) 
      .icon(markerDescriptor) 
      .anchor(0.5f, 0.5f); 
    positionMarker = mMap.addMarker(positionMarkerOptions); 

    if (accuracyCircle != null) { 
     accuracyCircle.remove(); 
    } 
    final CircleOptions accuracyCircleOptions = new CircleOptions() 
      .center(new LatLng(latitude, longitude)) 
      .radius(accuracy) 
      .fillColor(accuracyFillColor) 
      .strokeColor(accuracyStrokeColor) 
      .strokeWidth(2.0f); 
    accuracyCircle = mMap.addCircle(accuracyCircleOptions); 
} 
+0

ので、このコードは、上記のデフォルトのに対し、青い点を更新することができますが青い点は更新されませんか?最後の場所がわかるだけですか? –

+0

心配する必要はありません。 –

関連する問題