diff options
author | Christian Schneppe <christian@pix-art.de> | 2016-11-10 22:26:16 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2016-11-10 22:26:16 +0100 |
commit | dd562e30c20bb1bc6f8fd43e24c73f63ae41d67a (patch) | |
tree | 12bdc99180526acee869ca3a7c60b34446fe85fd /src/main/java/de/pixart/messenger/utils | |
parent | 8132ad906a6a8c251d87b466a1fe608f9709774c (diff) |
show map preview in chat
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/GeoHelper.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/GeoHelper.java b/src/main/java/de/pixart/messenger/utils/GeoHelper.java index afcb1bd8e..a524c1356 100644 --- a/src/main/java/de/pixart/messenger/utils/GeoHelper.java +++ b/src/main/java/de/pixart/messenger/utils/GeoHelper.java @@ -20,6 +20,28 @@ public class GeoHelper { return body != null && GEO_URI.matcher(body).matches(); } + public static String MapPreviewUri (Message message) { + Matcher matcher = GEO_URI.matcher(message.getBody()); + if (!matcher.matches()) { + return null; + } + double latitude; + double longitude; + try { + latitude = Double.parseDouble(matcher.group(1)); + if (latitude > 90.0 || latitude < -90.0) { + return null; + } + longitude = Double.parseDouble(matcher.group(2)); + if (longitude > 180.0 || longitude < -180.0) { + return null; + } + } catch (NumberFormatException nfe) { + return null; + } + return "https://maps.google.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&size=400x400&scale=2&format=jpg&markers=" + latitude + "," + longitude + "&sensor=false"; + } + public static ArrayList<Intent> createGeoIntentsFromMessage(Message message) { final ArrayList<Intent> intents = new ArrayList<>(); Matcher matcher = GEO_URI.matcher(message.getBody()); |