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 51660f93b..843bd3ad0 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);
@@ -1005,6 +1009,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)
@@ -1052,6 +1058,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 42698da71..95b519215 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 b0185acc9..a19f8c675 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -975,4 +975,5 @@
Override the default map download server used for map downloads. Leave empty to use CoMaps default server.
Not set
Please enter a URL starting with http:// or https://
+ Open in Panoramax