package com.darwinsys.mapdemos;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends Activity {
public static final String TAG = MainActivity.TAG;
private GoogleMap map;
final LatLng CENTER = new LatLng(43.661049, -79.400917);
class Data {
public Data(float lng, float lat, String title, String snippet) {
super();
this.lat = (float)lat;
this.lng = (float)lng;
this.title = title;
this.snippet = snippet;
}
float lat;
float lng;
String title;
String snippet;
}
Data[] data = {
new Data(-79.400917f,43.661049f, "New New College Res",
"Residence building (new concrete high-rise)"),
new Data(-79.394524f,43.655796f, "Baldwin Street",
"Here be many good restaurants!"),
new Data(-79.402206f,43.657688f, "College St",
"Many discount computer stores if you forgot a cable or need to buy hardware."),
new Data(-79.390381f,43.659878f, "Queens Park Subway",
"Quickest way to the north-south (Yonge-University-Spadina) subway/metro line"),
new Data(-79.403732f,43.666801f, "Spadina Subway",
"Quickest way to the east-west (Bloor-Danforth) subway/metro line"),
new Data(-79.399696f,43.667873f, "St George Subway back door",
"Token-only admittance, else use Spadina or Bedford entrances!"),
new Data(-79.384163f,43.655083f, "Eaton Centre (megamall)",
"One of the largest indoor shopping centres in eastern Canada. Runs from Dundas to Queen."),
};
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "MapsActivity.onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
if (map == null) {
String message = "Map Fragment Not Found or no Map in it!";
Log.e(TAG, message);
Toast.makeText(this, message, Toast.DURATION_LONG).show();
return;
}
for (Data d : data) {
LatLng location = new LatLng(d.lat, d.lng);
map.addMarker(new MarkerOptions().position(location)
.title(d.title)
.snippet(d.snippet));
}
// Let the user see indoor maps if available.
map.setIndoorEnabled(true);
// Enable my-location stuff
map.setMyLocationEnabled(true);
map.moveCamera(CameraUpdateFactory.zoomTo(14));
map.animateCamera(CameraUpdateFactory.newLatLng(CENTER), 1750, null);
}
}