Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML][inne]Wykaz szczytów do krony w Google Maps
Forum PHP.pl > Forum > Przedszkole
martinstw78
Witam,

Chciałem prosić o poradę w jaki sposób zrobić w Google Maps umieścić punkty na szczytach do Małej Korony Beskidów, w których będzie po najechaniu widoczna nazwa szczytu i jego wysokość npm, a z boku mapy będzie legenda z ponumerowanymi szczytami od najwyższego do najniższego, z podaniem nazwy, wysokości npm i daty wejścia na niego.

Coś takiego jak tutaj: https://www.google.com/maps/d/viewer?mid=11...0000005&z=7

W jaki sposób potem umieścić ta mapę na swojej stronie www i określić jej wymiary?

MP
Johnas
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.  
  5. <title>Mała Korona Beskidów</title>
  6. src="https://maps.googleapis.com/maps/api/js?key=Klucz_API&callback=initMap"
  7. async
  8. defer
  9. ></script>
  10. </head>
  11. <body>
  12. <div id="map" style="height: 500px; width: 100%;"></div>
  13. <div id="legend"></div>
  14.  
  15. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  16. function initMap() {
  17. var peaks = [
  18. { name: "Babia Góra", lat: 49.5736, lng: 19.3497, height: 1725 },
  19. { name: "Wielka Rycerzowa", lat: 49.4563, lng: 19.1666, height: 1257 },
  20. { name: "Wielka Racza", lat: 49.4264, lng: 18.8614, height: 1236 },
  21. // itd.
  22. ];
  23.  
  24. var map = new google.maps.Map(document.getElementById("map"), {
  25. zoom: 10,
  26. center: { lat: 49.5, lng: 19.2 },
  27. });
  28.  
  29. for (var i = 0; i < peaks.length; i++) {
  30. var peak = peaks[i];
  31. var marker = new google.maps.Marker({
  32. position: { lat: peak.lat, lng: peak.lng },
  33. map: map,
  34. title: peak.name + " - " + peak.height + " m n.p.m.",
  35. });
  36.  
  37. // Add click listener to display info window with peak details
  38. marker.addListener("click", function () {
  39. var infoWindow = new google.maps.InfoWindow({
  40. content: "<h3>" + this.title + "</h3>",
  41. });
  42. infoWindow.open(map, this);
  43. });
  44. }
  45.  
  46. // Add legend to display peak names and heights
  47. var legend = document.getElementById("legend");
  48. var legendContent = "<h2>Szczyty Małej Korony Beskidów</h2>";
  49. peaks.sort(function (a, b) {
  50. return b.height - a.height;
  51. });
  52. for (var i = 0; i < peaks.length; i++) {
  53. var peak = peaks[i];
  54. legendContent +=
  55. "<p>" +
  56. (i + 1) +
  57. ". " +
  58. peak.name +
  59. " - " +
  60. peak.height +
  61. " m n.p.m. (data wejścia: XX.XX.XXXX)" +
  62. "</p>";
  63. }
  64. legend.innerHTML = legendContent;
  65. }
  66. </script>
  67. </body>
  68. </html>


Demo

Dalej już chyba sobie poradzisz... klucz api znajdziesz na google console
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.