|
Chris Pollett >
Students > [Bio] |
Deliverable #2Description:
Source code
package net.learn2develop;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class GPSMap extends MapActivity
{
private LocationManager lm;
private LocationListener locationListener;
private MapView mapView;
private MapController mc;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("onCreate", "testing in onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//---use the LocationManager class to obtain GPS locations---
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
locationListener);
mapView = (MapView) findViewById(R.id.mapview1);
mc = mapView.getController();
boolean on = true;
Log.d("onCreate","setSatllite mode on = "+on);
}
public void onPause(){
lm.removeUpdates(locationListener);
Log.d("onPause", "testing in onPause");
super.onPause();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
private class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
Toast.makeText(getBaseContext(),
"Location changed : Lat: " + loc.getLatitude() +
" Lng: " + loc.getLongitude(),
Toast.LENGTH_SHORT).show();
GeoPoint p = new GeoPoint(
(int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude() * 1E6));
Geocoder geocoder = new Geocoder(getBaseContext(),Locale.getDefault());
try{
List<Address> addresses1 = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
StringBuilder sb = new StringBuilder();
if (addresses1.size() < 0) {
Address address1 = addresses1.get(0);
sb.append(address1.getLocality()).append("\n");
sb.append(address1.getCountryName()+"\n");
sb.append(address1.getThoroughfare()+"\n");
sb.append(address1.getPostalCode()+"\n");
getNearCities(address1.getPostalCode());
String addressString = sb.toString();
Log.i("testing addressString", addressString );
}
else {
String latLongString = "No location found";
Log.i("testing latLongString", latLongString );
}
}
catch(Exception e){
Log.i("Catch exception:", e.getMessage());
}
mc.setCenter(p);
mc.setZoom(16);
}
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getBaseContext(),
"onProviderDisabled provider = " + provider,
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getBaseContext(),
"onProviderEnabled provider = " + provider,
Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Toast.makeText(getBaseContext(),
"onStatusChanged provider = " + provider
+"status = " + status,
Toast.LENGTH_SHORT).show();
}
}
private void saveResult(String result){
FileOutputStream fos = null;
try
{
fos = this.openFileOutput("result", MODE_PRIVATE);
fos.write(result.getBytes());
}
catch (IOException ie)
{
Log.e("AndroidPersistence", "File Write Error");
}
finally
{
if(fos !=null)
{
try {fos.close();} catch(Exception e) {}
}
}
}
public void getNearCities(String zipcode){
Log.i("getNearCities function >>>", zipcode);
String location="http://codebump.com/services/placelookup.asmx/GetPlacesWithin?AuthenticationHeader=hXhFedrtFe%2F6K6wLhXGHgnzCAOFh%2F800kU3Fm2M3f2SKR1zSmw3ILG%2BZs1iRszJqeCeuJLJikkSRbNVcwFR4kIfz%2BWfUM31S&place="+zipcode+"&state=&distance=4&placeTypeToFind=ZipCode";
String result = null;
URL url = null;
try {
url = new URL(location);
} catch (MalformedURLException e) {
Log.i("webservices", "in catch:"+ e.getMessage());
}
if(url != null) {
try {
HttpURLConnection urlConn =
(HttpURLConnection) url.openConnection();
BufferedReader in =
new BufferedReader(
new InputStreamReader(
urlConn.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null)
{
result += "\n" + inputLine;
}
}
catch (IOException e) {
Log.i("webservices", "in catch:"+ e.getMessage());
}
this.saveResult(result);
Log.d("webservices", "result = "+ result);
}
}
}
|