Как найти текущее местоположение и сделать маркер на этом месте.? - PullRequest
3 голосов
/ 10 декабря 2011

Я хочу найти текущее местоположение и сделать маркер на этом месте.Пожалуйста, скажите мне

, если есть какой-либо пример, пожалуйста, скажите мне ..

вот так

enter image description here

Заранее спасибо ...

Ответы [ 3 ]

2 голосов
/ 10 декабря 2011
1 голос
/ 10 декабря 2011

для поиска текущего местоположения используйте GPS.Вы можете получить больше примеров для этого и для маркера смотрите по этим ссылкам.https://github.com/jgilfelt/android-mapviewballoons

0 голосов
/ 15 марта 2012

Здесь у нас есть несколько простых шагов

class MapOverlay extends com.google.android.maps.Overlay
    {
        @Override
        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.pin);            
            canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);         
            return true;
        }
    } 

после кода abv позвоните вашему маркеру

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mapView = (MapView) findViewById(R.id.mapView);

    Geocoder geocoder = new Geocoder(this, Locale.getDefault());
    List<Address> addresses = null;
    try {
        addresses = geocoder.getFromLocationName(getIntent().getStringExtra("address"), 1);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Address address = addresses.get(0);   
    double lng  = address.getLongitude();
    double lat  = address.getLatitude();   



    p = new GeoPoint(
        (int) (lat * 1E6), 
        (int) (lng * 1E6));

    mc.animateTo(p);
    mc.setZoom(17); 

  //---Add a location marker---
    MapOverlay mapOverlay = new MapOverlay();
    List<Overlay> listOfOverlays = mapView.getOverlays();
    listOfOverlays.clear();
    listOfOverlays.add(mapOverlay);        

    mapView.invalidate();
    mapView.invalidate();
 }

Надеюсь, я кое-что прояснил. Продолжай улыбаться :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...