我正在尝试使Google地图缩放到正在使用的设备的位置。

谷歌地图是通过以下代码从我的应用程序内部启动的。

button_bakery = (Button) findViewById(R.id.Breakfast_bakery);
    button_bakery.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View views) {
                    Button b = button_bakery;
                    String buttonText = b.getText().toString();

                    // Search for restaurants nearby
                    Uri gmmIntentUri = Uri.parse("geo:0,0?q=" + buttonText);
                    Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                    mapIntent.setPackage("com.google.android.apps.maps");
                    startActivity(mapIntent);
                }
            }
    );


但是,这会将位置加载为设备在使用此应用程序时设置的最后位置。有没有办法将其设置为在搜索完成之前缩放到设备的当前位置?

提前致谢!

最佳答案

通过遵循此documentation,可以使用geo:意图显示所需的缩放级别。

geo:latitude,longitude?z=zoom


z参数设置地图的初始缩放级别。可接受的值范围是0(整个世界)到21(单个建筑物)。

这是使用等于10(z = 10)的缩放级别的示例代码,这些示例将尝试在城市级别查找餐馆。

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);


另请检查此SO question以获取更多信息。

10-07 19:37
查看更多