使用Java覆盖Android手机上的默认位置
我遵循了24小时的教科书,创建了一个安卓应用程序,该应用程序可以启动谷歌地图,并根据硬编码到应用程序中的纬度和经度坐标导航到特定位置。但是,当我启动应用程序并运行代码时,它会打开谷歌地图或谷歌地球,并始终默认为我的当前位置。我如何防止它这样做 我试图让我的应用程序转到特定的纬度和经度,但当它启动谷歌地图或谷歌地球时,它总是默认为我的当前位置。Java代码如下所示:使用Java覆盖Android手机上的默认位置,java,android,Java,Android,我遵循了24小时的教科书,创建了一个安卓应用程序,该应用程序可以启动谷歌地图,并根据硬编码到应用程序中的纬度和经度坐标导航到特定位置。但是,当我启动应用程序并运行代码时,它会打开谷歌地图或谷歌地球,并始终默认为我的当前位置。我如何防止它这样做 我试图让我的应用程序转到特定的纬度和经度,但当它启动谷歌地图或谷歌地球时,它总是默认为我的当前位置。Java代码如下所示: Button mapButton = (Button) findViewById(R.id.button2); mapButton.
Button mapButton = (Button) findViewById(R.id.button2);
mapButton.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view) {
String geoURI = "geo:37.422,-122.0847z=23";
Uri geo = Uri.parse(geoURI);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, geo);
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
如何使其覆盖默认位置并转到上面硬编码的坐标?,行:
String geoURI = "geo:37.422,-122.0847z=23";
似乎语法无效,但可能需要缩放。尝试:
String geoURI = "geo:37.422,-122.0847?z=23";
但是,缩放级别仅上升到21,因此也请尝试:
String geoURI = "geo:37.422,-122.0847?z=21";
如果两者都不起作用,请使用不带任何缩放的基本字符串:
String geoURI = "geo:37.422,-122.0847";
试试这个:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));
startActivity(intent);
Intent-Intent=newintent(Intent.ACTION_视图,Uri.parse(“geo:,?q=,(Label+Name)”);
星触觉(意向);
如果你不想要标签,你可以省略(标签+名称),它会根据最近的街道或其他它认为相关的东西随机选择一个。你可以创建LatLng对象并告诉谷歌地图加载位置。执行此操作的代码如下所示:
double lat=26.52719;
double lng=88.72448;
LatLng myLocation = new LatLng(lat,lng);
if(this.googleMap !=null){
this.googleMap.addMarker(new MarkerOptions().position(myLocation).title("Your current Location").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
this.googleMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
}
请记住,您应该在onMapReady回调中应用此功能,并关闭您在谷歌地图中的当前位置
this.googleMap.setMyLocationEnabled(true);
非常感谢。是的,这是一个语法错误。添加“?”并将缩放级别更改为z=21修复了该问题