⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minigmap.java

📁 简单的java代码实现手机地图功能
💻 JAVA
字号:
package lordhong.apps;import java.util.ArrayList;import java.util.List;import org.xml.sax.SAXException;import lordhong.apps.DBHelper.AddressRow;import android.os.Bundle;import android.util.Log;import android.util.Xml;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.view.View.OnKeyListener;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import com.google.android.maps.MapActivity;import com.google.android.maps.MapController;import com.google.android.maps.MapView;import com.google.android.maps.Point;public class MiniGMap extends MapActivity {		private static MapView mapview;	private static AutoCompleteTextView address;	private DBHelper dbHelper;	private ArrayList<String> addresses;	private static final String LOGGER = "lordhong.miniGmap";	    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle icicle) {    	super.onCreate(icicle);    	    	requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);                ToolBar.setup(this);        mapview = (MapView)findViewById(R.id.mapview);        address = (AutoCompleteTextView)findViewById(R.id.address);        address.setKeyListener(new OnKeyListener() {			public boolean onKey(View v, int keyCode, KeyEvent event) {				if (keyCode==KeyEvent.KEYCODE_DPAD_CENTER) {					// get value from address auto-complete					String addr = address.getText().toString();					Log.i(LOGGER, "addr: " + addr);					// get lat. and long. from db					DBHelper.AddressRow row = dbHelper.fetchRow(addr);					if (row.rowId!=-1) {						// navigate to geo location						navigateToGeoCode(row.latitude, row.longitude);					} else {						// address not found, maybe a new address?						try {							String yahooGeoResponse = YahooGeoAPI.getGeoCode(addr);							YahooGeocodeHandler handler = new YahooGeocodeHandler();							try {			                    Xml.parse(yahooGeoResponse, handler);			                } catch (SAXException e) {			                    Log.e(LOGGER, e.toString(), e);			                }			                Log.i(LOGGER, "latitude: " + handler.getLatitude());			                Log.i(LOGGER, "Longitude: " + handler.getLongitude());			                if (handler.getLatitudeAsLong()!=-1 && handler.getLongitudeAsLong()!=-1) {			                	dbHelper.createRow(addr, handler.getLatitudeAsLong(), handler.getLongitudeAsLong());			                	navigateToGeoCode(handler.getLatitudeAsLong(), handler.getLongitudeAsLong());			                	// re-populate the addresses, including the new address			                	populateAddresses();			                }						} catch (Exception e) {							Log.e(LOGGER, "addr error from yahoo geo lookup: " + addr, e);						}												//Log.i("lordhong.miniGmap", "NOT FOUND!: " + addr);					}				}				return false;			}        	        });        dbHelper = new DBHelper(this);        populateAddresses();    }        public static void zoomIn() {    	mapview.getController().zoomTo(mapview.getZoomLevel() + 1);    }        public static void zoomOut() {    	mapview.getController().zoomTo(mapview.getZoomLevel() - 1);    }        public static void satellite() {    	mapview.toggleSatellite();    }        public static void traffic() {    	mapview.toggleTraffic();    }        public static void enterAddress() {    	address.requestFocus();    	address.setSelectAllOnFocus(true);    }        private void navigateToGeoCode(long latitude, long longitude) {    	Log.i(LOGGER, latitude+"--"+longitude);    	Point p = new Point((int)latitude, (int)longitude);		MapController mc = mapview.getController();		mc.animateTo(p);		mc.zoomTo(21);    }        public void populateAddresses() {    	addresses = new ArrayList<String>();    	    	List<AddressRow> rows = dbHelper.fetchAllRows();    	for (AddressRow row : rows) {    		addresses.add(row.address);    	}    	    	ArrayAdapter<String> addressAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, addresses);    	address.setAdapter(addressAdapter);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -