如何在Android中通过地址实现谷歌地图search?

如何在Android中通过地址实现谷歌地图search?

为此,您需要在地图活动中创build一个地图叠加层类。

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 。 把你的任何drawable。

现在请在您的searchonClick事件中写下面的代码。

 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控制器是一个地图控制器..