How to launch map intent with a marker/overlay ite

2020-05-21 06:27发布

问题:

I have a latitude and longitude and I want to open google maps centred at that point. So i use the following code for it:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("geo:"+lat +","+lng));
startActivity(intent);

However, this does not place a marker on the center. I want to place some kind of marker at the the point I start with (and optionally some kind of name for it). Any idea how this can be achieved?

回答1:

You can use it like,

Showing Particular Place,

Uri uri = Uri.parse("geo:0,0?q=22.99948365856307,72.60040283203125
                                                               (Maninagar)");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

Showing Route between to Places,

Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr="+23.0094408+","+72.5988541+"&
                            daddr="+22.99948365856307+","+72.60040283203125));
startActivity(intent);


回答2:

You can simply put latitude and longitude as extras to the intent like this:

Intent intent = new Intent();
    intent.putExtra("latitude", latitude);
    intent.putExtra("longitude", longitude);
    startActivity(intent);

And then fetch them from the MapActivity you've started:

Intent intent = getIntent();
    double latitude = intent.getDoubleExtra("latitude", 0.0);
    double longitude = intent.getDoubleExtra("longitude", 0.0);

Then you can use those values for anything you want. Hope this helps.