具有地图意图的标记标签

时间:2018-11-01 21:58:42

标签: android kotlin

在我的应用程序中,我想打开带有指定位置的Google地图以及标记及其标签。我想使用“意图”而不是“谷歌地图”和“标记”类来实现。我正在使用以下代码:

 post_url.setOnClickListener({
        val intent=Intent(Intent.ACTION_VIEW)
        intent.data = Uri.parse("https://www.google.com/maps/place/University+of+Oxford/@51.7548164,-1.2565555,17z/data=!4m12!1m6!3m5!1s0x4876c6a9ef8c485b:0xd2ff1883a001afed!2sUniversity+of+Oxford!8m2!3d51.7548164!4d-1.2543668!3m4!1s0x4876c6a9ef8c485b:0xd2ff1883a001afed!8m2!3d51.7548164!4d-1.2543668")
        startActivity(intent)
    })

它指向提供的位置,但未显示标记。我还尝试了以下代码:

post_url.setOnClickListener({
        val intent=Intent(Intent.ACTION_VIEW)
        intent.data = Uri.parse("geo:0,0?q=51.7548164,-1.2565555(Oxford University)")
        startActivity(intent)
    })

在第二种方法中,标记可见,但未显示标签。文本“ Oxford university”写在地图的底部,带有信息。但是我想用标记显示。请看下图了解我想要的。

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试一下:

String address = "http://maps.google.com/maps?q="+ LATITUDE  +"," + LONGITUDE +"("+ YOUR-LABEL-HERE + ")&iwloc=A&hl=es";     
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(address));
    startActivity(intent);

请将其拉长并贴上标签。

  

另一个答案

Uri gUri = Uri.parse("geo:0,0?q=YOUR_LAT,YOUR_LONG(YOUR_LABEL_HERE)");
Intent intent = new Intent(Intent.ACTION_VIEW, gUri);
startActivity(intent);

答案 1 :(得分:0)

也许您可以尝试使用意图启动Google地图的其他选项。

Double myLatitude = 51.7548164;
Double myLongitude = -1.2565555;
String labelLocation = "Oxford university";

1。

String urlAddress = "http://maps.google.com/maps?q="+ myLatitude  +"," + myLongitude +"("+ labelLocation + ")&iwloc=A&hl=es";     
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress));
startActivity(intent);

2。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<" + myLatitude  + ">,<" + myLongitude + ">?q=<" + myLatitude  + ">,<" + myLongitude + ">(" + labelLocation + ")"));
startActivity(intent);

3。

String urlAddress = "http://maps.googleapis.com/maps/api/streetview?size=500x500&location=" + myLatitude  + "," + myLongitude + "&fov=90&heading=235&pitch=10&sensor=false";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress));
startActivity(intent);

OR

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));
startActivity(intent);