package com.moonlight_aska.android.googlemapv2;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.location.LocationClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import android.location.Location;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity
implements OnConnectionFailedListener, LocationListener, ConnectionCallbacks {
private GoogleMap mMap = null;
private LocationClient mLocationClient = null;
private static final LocationRequest REQUEST = LocationRequest.create()
.setInterval(5000) // 5 seconds
.setFastestInterval(16) // 16ms = 60fps
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMap = ( (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map) ).getMap();
if (mMap != null) {
mMap.setMyLocationEnabled(true);
}
mLocationClient = new LocationClient(getApplicationContext(), this, this); // ConnectionCallbacks, OnConnectionFailedListener
if (mLocationClient != null) {
// Google Play Servicesに接続
mLocationClient.connect();
}
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
// 現在地に移動
CameraPosition cameraPos = new CameraPosition.Builder()
.target(new LatLng(location.getLatitude(), location.getLongitude())).zoom(7.0f)
.bearing(0).build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPos));
}
@Override
public void onConnectionFailed(ConnectionResult result) {
// TODO Auto-generated method stub
}
@Override
public void onConnected(Bundle connectionHint) {
// TODO Auto-generated method stub
mLocationClient.requestLocationUpdates(REQUEST, this); // LocationListener
}
@Override
public void onDisconnected() {
// TODO Auto-generated method stub
}
}
package com.moonlight_aska.android.web.googlemap03;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import android.os.Bundle;
public class MainActivity extends MapActivity {
private MapView mView = null;
private MapController mController = null;
pivate MyLocationOverlay mOverlay = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mView = (MapView)findViewById(R.id.mapview);
mController = mView.getController();
mOverlay = new MyLocationOverlay(this, mView);
// 現在地取得を有効に
if (!mOverlay.isMyLocationEnabled()) {
mOverlay.enableMyLocation();
}
mView.getOverlays().add(mOverlay);
// 最初に位置情報が確定したときに実行するコード
mOverlay.runOnFirstFix(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// 現在地へ移動
mController.animateTo(mOverlay.getMyLocation());
}
});
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}