开发者

How to implement google maps to search by street name, city?

开发者_运维问答

I need search functionality like this site. But I am wondering how can I get coordinates from google api by street name?


Google Geocoding API

You can enter in an address and it will return the Lat/long co-ordinates in a Json response or XML etc

You can read about it here:

http://code.google.com/apis/maps/documentation/geocoding/


In the onclick event of search write

List<Address> addresses = geoCoder.getFromLocationName("enter location name",5);
 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();

Then create map overlay class in mapActivity

class MapOverlay extends Overlay
{
   private GeoPoint pointToDraw;

   public void setPointToDraw(GeoPoint point) {
          pointToDraw = point;
   }

   public GeoPoint getPointToDraw()
   {
          return pointToDraw;

   }

    @Override
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
        super.draw(canvas, mapView, shadow);                  

        // convert point to pixels
        Point screenPts = new Point();
        mapView.getProjection().toPixels(pointToDraw, screenPts);

        // add marker
        Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); // 24 is the height of image       
        return true;
    }
} 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜