我是android世界的新人。试图从谷歌地图获得当前的坐标。我做了一个示例应用程序,打开谷歌地图作为意图(从Android网站)。我想做的是从那个意图中得到lat-lng。我到目前为止已经做了 -
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
// mMap = googleMap;
Uri uri = Uri.parse("geo:latitude,longitude?z=17");
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
更新: 我知道我可以在android中获得当前的坐标。 但我想从谷歌地图意图(当前显示标记位置)得到协调?
答案 0 :(得分:1)
请参阅GoogleMap
class documentation:
公共最终位置 getMyLocation()
......返回当前 显示的用户位置,如果没有位置数据,则为null 可用。
返回
- 当前显示的用户位置。
抛出
- 如果未启用my-location图层,则为IllegalStateException。
然后它又说:
不推荐使用此方法。使用 com.google.android.gms.location.FusedLocationProviderApi。
因此,如果您真的想要,可以使用getMyLocation()
,但不建议这样做。它可能会返回null。或抛出异常。
代码将类似于:
@Override
public void onMapReady(GoogleMap googleMap) {
// mMap = googleMap;
Location myLocation;
try {
myLocation = googleMap.getMyLocation();
}
catch (IllegalStateException e) {
// Handle the exception.
}
if (!myLocation == null) {
// Do something with the location if it's not null...
}
else {
// Handle the null location.
}
Uri uri = Uri.parse("geo:latitude,longitude?z=17");
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
startActivity(intent);
}