Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 29th, 2012  |  syntax: None  |  size: 6.00 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Google maps places to Custom List view
  2. package com.commonsware.android.nooer;
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Locale;
  7. import android.app.AlertDialog;
  8. import android.app.Dialog;
  9. import android.content.DialogInterface;
  10. import android.content.DialogInterface.OnCancelListener;
  11. import android.content.DialogInterface.OnClickListener;
  12. import android.graphics.Point;
  13. import android.graphics.drawable.Drawable;
  14. import android.location.Address;
  15. import android.location.Geocoder;
  16. import android.os.Bundle;
  17. import android.view.MotionEvent;
  18. import android.view.View;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.Toast;
  22. import com.google.android.maps.GeoPoint;
  23. import com.google.android.maps.MapActivity;
  24. import com.google.android.maps.MapController;
  25. import com.google.android.maps.MapView;
  26. import com.google.android.maps.MyLocationOverlay;
  27. import com.google.android.maps.OverlayItem;
  28.  
  29. public class NooYawk extends MapActivity {
  30.  
  31. MapView mapView;
  32.  
  33. MapController mapController;
  34.  
  35. GeoPoint mgeoPoint;
  36.  
  37. Drawable marker;
  38.  
  39. MyLocationOverlay mLocationOverlay;
  40.  
  41. MotionEvent e;
  42. public void changeMap(String area)
  43. {
  44.  
  45. MapController mc=mapView.getController();
  46. GeoPoint myLocation=null;
  47. double lat = 0;
  48. double lng = 0;
  49. try
  50. {
  51.  
  52. Geocoder g = new Geocoder(this, Locale.getDefault());
  53.  
  54. java.util.List<android.location.Address> result=g.getFromLocationName(area, 1);
  55. if(result.size()>0){
  56.  
  57. Toast.makeText(NooYawk.this, "country: " + String.valueOf(result.get(0).getCountryName()), Toast.LENGTH_SHORT).show();
  58. lat = result.get(0).getLatitude();
  59. lng = result.get(0).getLongitude();
  60.  
  61. }            
  62. else{
  63. Toast.makeText(NooYawk.this, "record not found", Toast.LENGTH_SHORT).show();
  64. return;
  65. }
  66. }
  67. catch(IOException io)
  68. {
  69. Toast.makeText(NooYawk.this, "Connection Error", Toast.LENGTH_SHORT).show();
  70. }
  71. myLocation = new GeoPoint(
  72. (int) (lat * 1E6),
  73. (int) (lng * 1E6));
  74. Drawable drawable = this.getResources().getDrawable(R.drawable.icon);
  75. mc.animateTo(myLocation);
  76. mc.setZoom(10);
  77. mapView.invalidate();
  78. }
  79.  
  80. @Override
  81. protected void onCreate(Bundle icicle) {
  82.  
  83.     // TODO Auto-generated method stub
  84.     super.onCreate(icicle);
  85.     setContentView(R.layout.main);
  86.     Button btnSearch=(Button) findViewById(R.id.btnSearch);
  87.     btnSearch.setOnClickListener(new View.OnClickListener() {
  88.  
  89.         public void onClick(View v) {
  90.  
  91.  
  92.         EditText txtSearch=(EditText)findViewById(R.id.txtMapSearch);
  93.         String area=txtSearch.getText().toString();
  94.         Toast.makeText(NooYawk.this, "Click-" + String.valueOf(area), Toast.LENGTH_SHORT).show();
  95.         NooYawk.this.changeMap(area);
  96.  
  97.                     }
  98.  
  99.         });
  100.  
  101.     mapView = (MapView) findViewById(R.id.map);
  102.  
  103.     mapController = mapView.getController();
  104.  
  105.     mapView.setBuiltInZoomControls(true);
  106.  
  107.     marker = getResources().getDrawable(R.drawable.marker);
  108.  
  109.     marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker
  110.            .getIntrinsicHeight());
  111.     mapView.getOverlays().add(new MapOverlay(marker));
  112.  
  113.     mLocationOverlay = new MyLocationOverlay(this, mapView);
  114.     mapView.getOverlays().add(mLocationOverlay);
  115.     setViewLocation();
  116. }
  117.  
  118. @Override
  119. protected Dialog onCreateDialog(int id) {
  120.  
  121.     // TODO Auto-generated method stub
  122.  
  123.     switch (id) {
  124.         case 0:
  125.             return new AlertDialog.Builder(this).setTitle("You want Add it to favorites").setIcon(
  126.                     R.drawable.icon).setPositiveButton("Yes",
  127.                     new OnClickListener() {
  128.  
  129.                         public void onClick(DialogInterface dialog , int which) {
  130.  
  131.                             // TODO Auto-generated method stub
  132.  
  133.                         }
  134.                     }).setCancelable(true).setNegativeButton("Cancel",
  135.                     new OnClickListener() {
  136.  
  137.                         public void onClick(DialogInterface dialog , int which) {
  138.  
  139.                             // TODO Auto-generated method stub
  140.  
  141.                         }
  142.                     })
  143.  
  144.             .setOnCancelListener(new OnCancelListener() {
  145.  
  146.                 public void onCancel(DialogInterface dialog) {
  147.  
  148.                     // TODO Auto-generated method stub
  149.                     Toast.makeText(getApplicationContext(), "Dismiss",
  150.                             Toast.LENGTH_SHORT).show();
  151.                 }
  152.  
  153.             }).create();
  154.  
  155.  
  156.         default:
  157.             break;
  158.     }
  159.     return null;
  160.         }
  161.  
  162. private void setViewLocation() {
  163.     String[] coordinates = { "22.716221", "75.896816" };
  164.  
  165.     double lat = Double.parseDouble(coordinates[0]);
  166.     double lng = Double.parseDouble(coordinates[1]);
  167.     mgeoPoint = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
  168.  
  169.     mapController.animateTo(mgeoPoint);
  170.     mapController.setZoom(15);
  171.  
  172.     mapView.invalidate();
  173.  
  174. }
  175.  
  176.  
  177. @Override
  178. protected boolean isRouteDisplayed() {
  179.  
  180.     // TODO Auto-generated method stub
  181.     return false;
  182. }
  183.  
  184.  
  185. Point scrPoint;
  186.  
  187.  
  188. private GeoPoint getPoint(double lat , double lon) {
  189.  
  190.     return (new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6)));
  191. }
  192.  
  193.  
  194. class MapOverlay extends
  195.         com.google.android.maps.ItemizedOverlay<OverlayItem> {
  196.  
  197.     List<OverlayItem> ListofGeopoints = new ArrayList<OverlayItem>();
  198.  
  199.  
  200.     public MapOverlay(Drawable defaultMarker ) {
  201.  
  202.         super(defaultMarker);
  203.         ListofGeopoints.add(new OverlayItem(getPoint(22.716221, 75.896816),
  204.                 "IN", "India"));
  205.         populate();
  206.  
  207.     }
  208.  
  209.  
  210.     @Override
  211.     protected boolean onTap(int index) {
  212.  
  213.     switch (index) {
  214.             case 0:
  215.                 Toast.makeText(getApplicationContext(), "GeoLocation : 0",
  216.                         Toast.LENGTH_LONG).show();
  217.                 showDialog(0);
  218.             break;
  219.         }
  220.  
  221.         return true;
  222.     }
  223.  
  224.  
  225.     String add = "";
  226.  
  227.     List<Address> add_List = new ArrayList<Address>();
  228.  
  229.  
  230.     private void getAddress() {
  231.  
  232.         /*add_List = ReverseGeocode
  233.                 .getFromLocation(35.594227, -105.223618, 2);
  234. */
  235.     }
  236.  
  237.     @Override
  238.     protected OverlayItem createItem(int i) {
  239.         return (ListofGeopoints.get(i));
  240.     }
  241.     @Override
  242.     public int size() {
  243.         return ListofGeopoints.size();
  244.     }
  245. }
  246. }