diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java
index ff3b05d6e..c5103e44d 100644
--- a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java
+++ b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java
@@ -105,4 +105,12 @@ public class PlacePageUtils
});
popup.show();
}
+
+ public static String buildPanoramaxURL(double lat, double lon)
+ {
+ final String panoramaxURL = "https://api.panoramax.xyz/?map=";
+ final String levelZoom = "16";
+ final String quality_score = "&pic_score=ABC";
+ return panoramaxURL + levelZoom + "/" + lat + "/" + lon + quality_score;
+ }
}
diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java
index c94977604..9d3277215 100644
--- a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java
+++ b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java
@@ -4,6 +4,7 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static app.organicmaps.sdk.util.Utils.getLocalizedFeatureType;
import static app.organicmaps.sdk.util.Utils.getTagValueLocalized;
+import static app.organicmaps.widget.placepage.PlacePageUtils.buildPanoramaxURL;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -290,6 +291,9 @@ public class PlacePageView extends Fragment
openIn.setOnClickListener(this);
openIn.setOnLongClickListener(this);
openIn.setVisibility(VISIBLE);
+ LinearLayout openPhotoViewer = mFrame.findViewById(R.id.ll__place_open_phviewer);
+ openPhotoViewer.setOnClickListener(this);
+ openPhotoViewer.setVisibility(VISIBLE);
mTvLatlon = mFrame.findViewById(R.id.tv__place_latlon);
mWifi = mFrame.findViewById(R.id.ll__place_wifi);
mTvWiFi = mFrame.findViewById(R.id.tv__place_wifi);
@@ -1004,6 +1008,8 @@ public class PlacePageView extends Fragment
mMapObject.getName());
Utils.openUri(requireContext(), Uri.parse(uri), R.string.uri_open_location_failed);
}
+ else if (id == R.id.ll__place_open_phviewer)
+ Utils.openUrl(requireContext(), buildPanoramaxURL(mMapObject.getLat(),mMapObject.getLon()));
else if (id == R.id.direction_frame)
showBigDirection();
else if (id == R.id.item_icon)
@@ -1051,6 +1057,10 @@ public class PlacePageView extends Fragment
mMapObject.getName());
PlacePageUtils.copyToClipboard(requireContext(), mFrame, uri);
}
+ else if (id == R.id.ll__place_open_phviewer)
+ {
+ PlacePageUtils.copyToClipboard(requireContext(),mFrame, buildPanoramaxURL(mMapObject.getLat(),mMapObject.getLon()));
+ }
else if (id == R.id.ll__place_operator)
items.add(mTvOperator.getText().toString());
else if (id == R.id.ll__place_network)
diff --git a/android/app/src/main/res/layout/place_page_details.xml b/android/app/src/main/res/layout/place_page_details.xml
index 2803e70a2..9329d1971 100644
--- a/android/app/src/main/res/layout/place_page_details.xml
+++ b/android/app/src/main/res/layout/place_page_details.xml
@@ -71,6 +71,8 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index f3f47e64d..869c62099 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -974,4 +974,5 @@
https://cdn-fi-1.comaps.app/
Not set
Please enter a full URL starting with https:// and ending with /
+ Open in Panoramax