WIP adding google maps uri support
This commit is contained in:
parent
4f59359f5e
commit
3ac332535d
@ -0,0 +1,33 @@
|
|||||||
|
package it.danieleverducci.nextcloudmaps.utils;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Google maps doesn't honor geouri standard, instead implements its own uri.
|
||||||
|
* A geouri opens google maps, but the position is ignored, so it is needed to use gmaps own uri.
|
||||||
|
* Utility to check if gmaps is installed and generate a gmaps uri
|
||||||
|
*/
|
||||||
|
public class GoogleMapsUri {
|
||||||
|
|
||||||
|
public static boolean isGoogleMapsInstalled(Context context) {
|
||||||
|
try {
|
||||||
|
context.getPackageManager().getApplicationInfo("com.google.android.apps.maps", 0);
|
||||||
|
return true;
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Uri createGmapsUri(double lat, double lon) {
|
||||||
|
// Check coords validity
|
||||||
|
if (lon <= -180 || lon >= 180 )
|
||||||
|
throw new IllegalArgumentException("Invalid longitude: " + lon);
|
||||||
|
if (lat <= -90 || lat >= 90)
|
||||||
|
throw new IllegalArgumentException("Invalid latitude: " + lat);
|
||||||
|
|
||||||
|
String uriStr = "https://www.google.com/maps/search/?api=1&query=" + lat + "," + lon;
|
||||||
|
return Uri.parse(uriStr);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user