package jp.mydns.sys1yagi.android.polaris2sample; import java.util.Random; import com.cyrilmottier.polaris2.maps.CameraUpdate; import com.cyrilmottier.polaris2.maps.CameraUpdateFactory; import com.cyrilmottier.polaris2.maps.GoogleMap; import com.cyrilmottier.polaris2.maps.SupportMapFragment; import com.cyrilmottier.polaris2.maps.model.CameraPosition; import com.cyrilmottier.polaris2.maps.model.LatLng; import com.cyrilmottier.polaris2.maps.model.MarkerOptions; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.view.View; import android.view.View.OnClickListener; public class Polaris2SampleActivity extends FragmentActivity { private GoogleMap mMap; private MarkerOptions mMarker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_polaris2_sample); findViewById(R.id.button).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { randomPin(); } }); } private void randomPin() { if (mMarker == null) { LatLng latLng = new LatLng(35.681382, 139.766084); mMarker = new MarkerOptions().position(latLng).title("東京駅"); CameraPosition position = CameraPosition.builder().target(latLng) .zoom(14.0f).build(); CameraUpdate update = CameraUpdateFactory .newCameraPosition(position); getMap().addMarker(mMarker); getMap().moveCamera(update); } else { Random random = new Random(System.currentTimeMillis()); double lat = random.nextDouble() * 0.3f; double lon = random.nextDouble() * 0.3f; lat = random.nextBoolean() ? lat : -lat; lon = random.nextBoolean() ? lon : -lon; // マーカの更新 LatLng latLng = new LatLng(mMarker.getPosition().latitude + lat, mMarker.getPosition().longitude + lon); mMarker.reset(); mMarker.position(latLng).title( latLng.latitude + "," + latLng.longitude); // カメラの移動 CameraPosition position = CameraPosition.builder().target(latLng) .zoom(14.0f).build(); CameraUpdate update = CameraUpdateFactory .newCameraPosition(position); // マップを更新 getMap().clear(); getMap().addMarker(mMarker); getMap().animateCamera(update); } } private GoogleMap getMap() { if (mMap == null) { FragmentManager fm = getSupportFragmentManager(); SupportMapFragment smf = ((SupportMapFragment) fm .findFragmentById(R.id.map)); mMap = smf.getPolarisMap(); } return mMap; } @Override protected void onResume() { super.onResume(); randomPin(); } }