получить текущее местоположение - PullRequest
1 голос
/ 23 февраля 2010

Я закончил создание программы для Android, которая добавляет маркер в локацию. Но мне нужно показать ТЕКУЩЕЕ МЕСТО в КАРТЕ. Я знаю, что это делается через сервисы, основанные на местоположении, но я не знаю, как включить это в мою программу

Вот моя команда onCreate


  public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);</p>

<pre><code>    //map
    mapView = (MapView) findViewById(R.id.mapView);

    //zoom
    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
    View zoomView = mapView.getZoomControls(); 

    zoomLayout.addView(zoomView, 
        new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, 
            LayoutParams.WRAP_CONTENT)); 
    mapView.displayZoomControls(true);

    //Philippines coordinate
    mc = mapView.getController();
    String coordinates[] = {"10.952566007", "121.78921587"};
    double lat = Double.parseDouble(coordinates[0]);
    double lng = Double.parseDouble(coordinates[1]);

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

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

    mapOverlay = new MapOverlay();
    listOfOverlays = mapView.getOverlays();
    listOfOverlays.clear();
    listOfOverlays.add(mapOverlay);  

    mapView.invalidate();
}

У меня есть событие onTouchEvent, которое помещает маркер. Так что никаких проблем нет, проблема в том, что мне нужно отобразить свое местоположение в начале программы. На карте должна быть отметка «Вы здесь» или что-то в этом роде.

p.s: Я думаю, что мне нужно изменить жестко запрограммированную точку на текущую точку местоположения, но я не знаю, как это сделать:

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010

Чтобы узнать текущее местоположение вашего телефона, я использую

LocationManager locationManager = (LocationManager) this.getSystemService (LOCATION_SERVICE);
Критерии критериев = новые критерии (); criteria.setAccuracy (Criteria.ACCURACY_COARSE); String bestProvider = locationManager.getBestProvider (критерии, правда); Местоположение loc = locationManager.getLastKnownLocation (bestProvider);

определить использование-разрешения в AndroidManifest.xml для этих (используйте точное местоположение для других вещей)

исх. http://code.google.com/p/android-bluetooth-on-motion/source/browse/trunk/BluetoothOnMotion/src/com/elsewhat/android/onmotion/BluetoothOnMotionService.java

В моем приложении я хотел бы передать параметр в намерение карт, чтобы карты отображали маркер, но не нашел способа сделать это. Создание наложения местоположения в соответствии с предложением Рика (который не является Фредом), вероятно, является подходящим способом

0 голосов
/ 23 февраля 2010

Hello MapView показывает, как размещать наложения. Я думаю, что вы хотите использовать класс MyLocationOverlay, задокументированный в справочнике Google APIS , чтобы получить ваше текущее местоположение.

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