如何在Android中按地址实施谷歌地图搜索?

时间:2011-03-21 09:16:02

标签: android google-maps

如何在Android中按地址实施Google地图搜索?

1 个答案:

答案 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控制器是地图控制器..