Android 安卓&;地图2:如何获取用户位置?

Android 安卓&;地图2:如何获取用户位置?,android,android-maps,Android,Android Maps,在我完成之前我有很多事情要做,在连续8个小时的工作之后,我需要寻求帮助。我已经成功地在Android上设置了V2地图,他们在我的设备上工作,我不知道在哪里可以找到一个资源来帮助我构建一个更高级的地图应用程序,我甚至无法让用户的位置显示出来。我正在一部安卓手机上调试,它可以上网。我已经阅读了10多个关于堆栈溢出的问题,并且通读了谷歌的一些文档 这是我目前的课程: import com.google.android.gms.maps.GoogleMap; import com.google.andr

在我完成之前我有很多事情要做,在连续8个小时的工作之后,我需要寻求帮助。我已经成功地在Android上设置了V2地图,他们在我的设备上工作,我不知道在哪里可以找到一个资源来帮助我构建一个更高级的地图应用程序,我甚至无法让用户的位置显示出来。我正在一部安卓手机上调试,它可以上网。我已经阅读了10多个关于堆栈溢出的问题,并且通读了谷歌的一些文档

这是我目前的课程:

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地图中是可能的吗

非常感谢

我需要建立到获取用户位置,然后允许用户搜索位置并存储它们,有人认为这在V2地图中是可能的吗

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

更新


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

今天我收到了一封来自Google Maps的电子邮件,这封邮件是指在新的Google Maps API v2上获取当前位置

自上个月以来,包括我在内的许多开发者发现,在新的谷歌地图API v2上获取当前位置存在问题或不便

这个问题是

“使用谷歌地图并使用 setMyLocationEnabled(true)。没有办法(我的意思是没有合适的方法) 没有回调),使用 默认/内置LocationSource。应该有一种通知方式 用户/我的位置发生了变化。API v1有办法做到这一点。没有 拥有它需要构建一个复杂的算法,而该算法可能不在 与谷歌地图当前显示的内容同步。”

以上问题在这里链接

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

“这个问题将在下一版本的地图Android中修复 API。”


就这些了。

它已经做到了。请参阅Google Maps V2的位置API。

我已经试着按照你的建议做了,但是我遗漏了一些东西,如果你有时间,你能告诉我怎么做吗?我一直在寻找我认为现在不推荐的地质点?谢谢大家!@deucalion0:查看此示例项目:感谢您的帮助,我花了大约一个半小时阅读了您的所有代码,这对我来说太难了,我无法理解,我放弃了,但我又重新开始尝试,我不会让它打败我我会看看你最新的答案。你看,我的问题是,我只想看到每个部分一次完成一点,太多的代码让我搞砸了:)谢谢@deucalion0:嗯,在我的repo中的同一个
MapsV2/
目录中还有其他示例项目,其中一些项目更简单,尽管这是唯一一个可以处理位置信息的项目。而且,FWIW,涵盖所有这些样本的书籍章节将于下周晚些时候出版。谢谢Commonware我感谢您的帮助!我等不及要那本书了!我将继续查看您的回购协议!:)