Android& Maps v2:如何获取用户位置?

时间:2012-12-24 19:22:46

标签: android android-maps

在我完成之前我还有很多工作要做,经过8个小时的努力,我需要寻求帮助。我已经设法在他们在我的设备上运行的Android上设置V2地图,我不知道在哪里可以找到可以帮助我构建更高级的地图应用程序的资源,我甚至无法让用户显示位置。我正在使用具有互联网功能的Android手机上进行调试。我已经阅读了有关Stack溢出的10多个问题,并阅读了Google上的一些文档。

到目前为止,这是我的课程:

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.location.Location;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

public class MainActivity extends FragmentActivity  {


  private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     setUpMapIfNeeded();

}

  @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }



  private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (mMap == null) {
            // Try to obtain the map from the SupportMapFragment.
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            // Check if we were successful in obtaining the map.
            if (mMap != null) {
                setUpMap();
            }
        }
    }


  private void setUpMap() {

      mMap.setMyLocationEnabled(true);
      mMap.getMyLocation();



    }
}

我需要建立起来获取用户位置,然后允许用户搜索地点并存储它们,是否有人认为这可以在V2地图中实现?

非常感谢!

3 个答案:

答案 0 :(得分:7)

  

我需要建立起来获取用户位置,然后允许用户搜索地点并存储它们,是否有人认为这可以在V2地图中实现?

您需要通过LocationManager找到用户的位置,就像在任何Android应用中一样。或者,您可以通过调用setLocationSource()上的GoogleMap将这些位置提供给Maps V2。

<强>更新

如果您在setMyLocationEnabled(true)上使用GoogleMap,则可以getMyLocation()上的GoogleMap检索位置。这比滚动您自己的位置跟踪更简单,但您没有获得尽可能多的控制权(例如,您没有被告知移动)。

答案 1 :(得分:1)

今天我收到一封来自Google地图的电子邮件,该电子邮件被提及获取新版Google Maps API v2的当前位置,

自上个月以来,包括我在内的许多开发人员发现在新的Google Maps API v2上获取当前位置存在问题或不便。

那个问题是

  

“使用GoogleMap并使用我的位置启用   setMyLocationEnabled(真)。没有办法(我的意思是没有正确的方法)   没有回调)使用。来通知位置变更   默认/内置LocationSource。应该有办法通知   用户/我的位置的变化。 API v1有办法做到这一点。没有   拥有它需要构建一个可能不在的复杂算法   与GoogleMap当前显示的内容同步。“

以上问题与此相关。 http://code.google.com/p/gmaps-api-issues/issues/detail?id=4644

然后今天谷歌地图团队向许多开发者发送了一封电子邮件:

  

“此问题将在Android Android的下一版本中修复   API“。

就是这样......

答案 2 :(得分:1)

它有。请参阅Google Maps V2的Location API。 http://developer.android.com/training/location/index.html