如何在Android中按地址实施Google地图搜索?
答案 0 :(得分:37)
为此,您需要在地图活动中创建一个地图覆盖类。
class MapOverlay extends com.google.android.maps.Overlay
{
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.pink);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-32, null);
return true;
}
}
请改变R.drawable.pink
。把你的任何绘画。
现在请在搜索onClick
事件中写下以下代码..
List<Address> addresses = geoCoder.getFromLocationName(txtsearch.getText().toString(),5);
if(addresses.size() > 0) {
p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
controller.animateTo(p);
controller.setZoom(12);
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = map.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
map.invalidate();
txtsearch.setText("");
}
else {
AlertDialog.Builder adb = new AlertDialog.Builder(GoogleMap.this);
adb.setTitle("Google Map");
adb.setMessage("Please Provide the Proper Place");
adb.setPositiveButton("Close",null);
adb.show();
}
txtsearch 是EditText
而控制器是地图控制器..