{"id":3475,"date":"2026-10-04T12:27:45","date_gmt":"2026-10-04T08:27:45","guid":{"rendered":"https:\/\/ecotourism.ge\/?p=3475"},"modified":"2026-10-04T15:24:16","modified_gmt":"2026-10-04T11:24:16","slug":"turtle-lake-educational-trail","status":"publish","type":"post","link":"https:\/\/ecotourism.ge\/en\/turtle-lake-educational-trail\/","title":{"rendered":"Turtle Lake Educational Trail"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"379\" src=\"https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-1024x379.png\" alt=\"\" class=\"wp-image-3463\" srcset=\"https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-1024x379.png 1024w, https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-767x284.png 767w, https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-300x111.png 300w, https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-1536x569.png 1536w, https:\/\/ecotourism.ge\/wp-content\/uploads\/2026\/10\/6afc5845-ad88-4b95-a269-ea72895c547b-2048x759.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">The forest surrounding Turtle Lake is a fascinating meeting point between nature and the city. As you walk along the route, you can observe different types of forests and shrublands, explore how they change, and see firsthand how the natural environment transforms over time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The trail is particularly interesting for those who want to understand how forests recover and evolve, how human activity affects the environment, and how natural ecosystems develop. Along the way, you will encounter relatively natural, as well as degraded and secondary vegetation, turning the route into a <strong>living laboratory of nature<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The route is circular and begins on the northwestern shore of Turtle Lake. Initially, the trail heads west and, after a gentle uphill section, enters the forest. The forest trail gradually climbs to the ridge above Turtle Lake, offering <strong>wide panoramic views of the lake, forested slopes, and Tbilisi<\/strong>.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">After crossing the ridge, the route continues through the forest and descends towards Turtle Lake. The trail ends on the southeastern shore of the lake.<\/p>\n\n\n\n<div class=\"ecr\" id=\"ecr-uerucq\"><\/div><script>(function(){var D={\"lang\":\"en\",\"title\":\"Turtle Lake Educational Trail\",\"file\":\"turtle-lake\",\"stats\":{\"dist\":4.8,\"asc\":null,\"desc\":null,\"max\":null},\"duration\":\"2\u20133 hours\",\"difficulty\":1,\"shape\":\"loop\",\"months\":[3,4,5,6,9,10,11],\"start\":\"North-western shore of Turtle Lake\",\"getting\":\"You can reach Turtle Lake from Vake Park on foot or by cable car. By car or taxi, take Turtle Lake Road up to the lake.\",\"tips\":\"Part of the trail runs through forest and part across open, dry slopes, so bring water and a hat in warm weather. A notebook and pen are handy for the field tasks. The southern shore of the lake is often wet and muddy.\",\"orig\":\"\",\"segs\":[[[41.70144,44.75375,null],[41.70139,44.75358,null],[41.70132,44.75307,null],[41.70127,44.75273,null],[41.70119,44.75239,null],[41.70111,44.75212,null],[41.7011,44.75185,null],[41.70104,44.7516,null],[41.70106,44.75127,null],[41.70101,44.751,null],[41.70087,44.75044,null],[41.70079,44.75016,null],[41.7007,44.74994,null],[41.70059,44.74977,null],[41.7004,44.74938,null],[41.70023,44.7491,null],[41.70012,44.74887,null],[41.70005,44.74864,null],[41.69984,44.7485,null],[41.69974,44.74845,null],[41.69954,44.74844,null],[41.69937,44.74844,null],[41.69923,44.74847,null],[41.69906,44.74843,null],[41.69896,44.74829,null],[41.69882,44.74815,null],[41.69877,44.74801,null],[41.69868,44.74782,null],[41.69856,44.74809,null],[41.69848,44.7484,null],[41.69841,44.74858,null],[41.6982,44.7488,null],[41.69805,44.74851,null],[41.69805,44.74836,null],[41.69799,44.74798,null],[41.69795,44.74755,null],[41.69789,44.7472,null],[41.69785,44.74679,null],[41.69782,44.74647,null],[41.69782,44.7458,null],[41.69781,44.74547,null],[41.69784,44.74503,null],[41.69788,44.74476,null],[41.69798,44.74442,null],[41.69803,44.74407,null],[41.69806,44.74377,null],[41.69806,44.74353,null],[41.698,44.74336,null],[41.69786,44.74271,null],[41.69772,44.74228,null],[41.6976,44.74192,null],[41.69752,44.74164,null],[41.6974,44.74134,null],[41.6972,44.74128,null],[41.69703,44.7415,null],[41.69697,44.74163,null],[41.69694,44.74185,null],[41.69689,44.7421,null],[41.69679,44.74225,null],[41.69656,44.74213,null],[41.69641,44.74199,null],[41.69638,44.74181,null],[41.69625,44.7416,null],[41.69612,44.74143,null],[41.69596,44.74138,null],[41.69586,44.7413,null],[41.69568,44.74119,null],[41.69554,44.74117,null],[41.69542,44.74118,null],[41.69518,44.74116,null],[41.695,44.7411,null],[41.69476,44.7409,null],[41.69443,44.74075,null],[41.69427,44.74066,null],[41.6942,44.74078,null],[41.69419,44.74112,null],[41.69416,44.7413,null],[41.69412,44.74147,null],[41.69409,44.74167,null],[41.69406,44.74187,null],[41.69402,44.74205,null],[41.69396,44.74217,null],[41.69381,44.74213,null],[41.69375,44.74234,null],[41.69371,44.74251,null],[41.69368,44.74274,null],[41.6936,44.74289,null],[41.69355,44.74306,null],[41.69361,44.74332,null],[41.69372,44.74342,null],[41.69385,44.74352,null],[41.69402,44.74365,null],[41.6942,44.74384,null],[41.6944,44.74413,null],[41.69447,44.74441,null],[41.69448,44.74463,null],[41.6945,44.74511,null],[41.69452,44.74553,null],[41.69453,44.74583,null],[41.69456,44.74619,null],[41.69458,44.74655,null],[41.69467,44.74686,null],[41.69472,44.74722,null],[41.69481,44.74756,null],[41.69484,44.7478,null],[41.69482,44.74845,null],[41.69482,44.74889,null],[41.69481,44.74918,null],[41.69478,44.74952,null],[41.69482,44.74984,null],[41.69486,44.75,null],[41.69495,44.75026,null],[41.69498,44.75058,null],[41.69503,44.7509,null],[41.69507,44.75118,null],[41.6952,44.75126,null],[41.6954,44.75106,null],[41.69548,44.75089,null],[41.69561,44.7508,null],[41.69582,44.75046,null],[41.69585,44.75019,null],[41.69586,44.75002,null],[41.69598,44.74997,null],[41.69615,44.75032,null],[41.6963,44.75053,null],[41.6964,44.75074,null],[41.69655,44.75094,null],[41.69669,44.75109,null],[41.69684,44.75122,null],[41.697,44.75139,null],[41.69718,44.75157,null],[41.69737,44.75178,null],[41.69754,44.7519,null],[41.69769,44.752,null],[41.69772,44.75215,null],[41.69779,44.75231,null],[41.69781,44.75249,null],[41.69784,44.7527,null],[41.69786,44.75292,null],[41.6979,44.75325,null],[41.69796,44.75341,null],[41.69798,44.75362,null],[41.69796,44.75387,null],[41.69807,44.75369,null],[41.69809,44.75352,null],[41.69832,44.75423,null],[41.69839,44.75444,null],[41.69845,44.75468,null],[41.69853,44.75496,null],[41.69862,44.75529,null],[41.69868,44.75555,null],[41.69875,44.75577,null],[41.69881,44.75599,null],[41.69889,44.75637,null],[41.69895,44.75663,null],[41.69899,44.75686,null],[41.699,44.75702,null],[41.69905,44.75719,null],[41.6991,44.75732,null],[41.69913,44.75696,null],[41.69913,44.75672,null],[41.69915,44.75651,null],[41.69916,44.75626,null],[41.69919,44.75604,null],[41.69919,44.75589,null],[41.6992,44.75573,null],[41.69921,44.75555,null],[41.69919,44.75532,null],[41.69919,44.75515,null],[41.69922,44.75483,null],[41.69922,44.75464,null],[41.69923,44.75447,null],[41.69917,44.7542,null],[41.69916,44.7539,null],[41.69918,44.75369,null],[41.69918,44.75345,null],[41.69919,44.75312,null],[41.6992,44.75289,null],[41.69925,44.75256,null],[41.69924,44.75241,null],[41.69929,44.75215,null],[41.6994,44.75201,null],[41.69939,44.75224,null],[41.69938,44.75251,null],[41.69937,44.75273,null],[41.69938,44.75301,null],[41.69939,44.75323,null],[41.69943,44.75361,null],[41.69951,44.75391,null],[41.69954,44.75418,null],[41.69958,44.75449,null],[41.69965,44.75495,null],[41.69963,44.75512,null],[41.69968,44.75539,null],[41.69973,44.75571,null],[41.6998,44.75603,null],[41.69997,44.75644,null],[41.70013,44.75671,null],[41.70028,44.75693,null],[41.7004,44.75707,null],[41.70051,44.75715,null],[41.70069,44.75717,null],[41.70084,44.75709,null],[41.70098,44.75694,null],[41.70106,44.75674,null],[41.70113,44.75655,null],[41.70116,44.75636,null],[41.70124,44.75612,null],[41.70132,44.75583,null],[41.70136,44.75566,null],[41.70141,44.75541,null],[41.70143,44.75518,null],[41.70145,44.75493,null],[41.70149,44.75461,null],[41.70149,44.7545,null]]],\"wpts\":[[41.69446,44.74409,\"Picnic area\",\"\"],[41.69625,44.75103,\"Picnic area\",\"\"],[41.69918,44.74853,\"Field task 1\",\"Determine the canopy density and site quality of the oriental hornbeam and oak forest.\"],[41.69592,44.74992,\"Field task 3\",\"Estimate the canopy density and approximate site quality of the forest in the floodplain ecosystems.\"],[41.69683,44.74315,\"Field task 2\",\"Assess the mosaic of ecosystems on the northern slope of the Turtle Lake ridge.\"],[41.70111,44.75425,\"1. Turtle Lake\",\"Turtle Lake was formed by a landslide and lies in a small hollow 686 m above sea level. Its surface area is 0.034 km\u00b2, its maximum depth 2.6 m and its average depth 1.7 m. The lake is 180 m long and 50 m wide and is fed mainly by groundwater and precipitation. Eutrophication is visible along the western shore, and the lake has few fish. The surroundings are planted with trees such as black pine, alongside elements of natural forest: linden, ash, elm and acacia. Turtle Lake is a good example of a man-made suburban recreation area. The lake and its shores are landscaped, and it is one of the favourite places for people in Tbilisi to relax.\"],[41.69812,44.74887,\"3. Hemixerophytic shrubland\",\"Mixed shrubland in combination with meadow formations. Planted quince and cherry plum, and hemixerophytic shrubs: hawthorn, blackthorn, broom, Christ's thorn and dog rose. Herbaceous species: Poa nemoralis, Galium sp., Galega orientalis, Salvia nemorosa, Euphorbia macroceras, Bromus sp., Fragaria vesca, Silene sp., Dactylis glomerata, Phleum sp., Potentilla reptans.\"],[41.69794,44.74782,\"4. Oriental hornbeam forest\",\"Oriental hornbeam forest with shrubs and a sparse herb layer; the best site quality for oriental hornbeam. Age 55\u201360 years, canopy density 0.9, projective cover 90%. The hornbeams are fairly tall, reaching 9\u201311 m. Growing stock 45\u201365 t\/ha, phytomass 25\u201340 m\u00b3\/ha. Because the canopy is so dense, the herb layer is sparse: this is a dead-cover forest type.\"],[41.69779,44.74634,\"5. Mixed broadleaf forest with oak, oriental hornbeam and maple\",\"Oak and hornbeam\u2013oak forest, 12\u201315 m tall. Shade-tolerant species (Acer laetum) appear among the young trees. Understorey: Ribes sp., Lonicera caucasica. The herb layer is sparse, with fescue, vetchling and other species.\"],[41.69697,44.74209,\"6. Bluestem steppe\",\"Dry steppe dominated by bluestem (Bothriochloa), with occasional fescue and oleaster. On south-facing slopes typical steppe species grow, reflecting increasing dryness.\"],[41.69666,44.74317,\"7. Shrubland and open woodland\",\"Mixed low broadleaf woodland of oleaster, alder, Judas tree and acacia. Shrubs include spindle, dog rose and Christ's thorn; herbs include vetchling, wild strawberry, lucerne and others. The ecosystem is typical of the transition from semi-humid to semi-arid conditions.\"],[41.69914,44.74849,\"2. Oriental hornbeam and oak forest\",\"Hornbeam\u2013oak forest with a sparse herb layer. Tree height 5\u20136 m, age 40\u201350 years, canopy density 0.8, projective cover 80%. Quercus iberica, Carpinus orientalis. Lower layer: Cytisus caucasicus, Silene sp., Galium sp., Festuca sulcata, Campanula rapunculoides, Viola odorata, Galega orientalis.\"],[41.69707,44.74985,\"8. Dry steppe and phrygana\",\"Dry steppe with hemixerophytic shrubs, bluestem, fescue and other grasses.\"],[41.69974,44.75405,\"9. Boggy lakeshore\",\"The southern shore of the lake. Water flowing into the lake periodically floods the area, so it is waterlogged and boggy, and covered with marsh vegetation.\"]]};(function ecrRender(el, D) { var LBL = { ka: { dist: '\u10db\u10d0\u10dc\u10eb\u10d8\u10da\u10d8', asc: '\u10d0\u10e6\u10db\u10d0\u10e0\u10d7\u10d8', desc: '\u10d3\u10d0\u10e6\u10db\u10d0\u10e0\u10d7\u10d8', max: '\u10e3\u10db\u10d0\u10e6\u10da\u10d4\u10e1\u10d8 \u10ec\u10d4\u10e0\u10e2\u10d8\u10da\u10d8', dur: '\u10ee\u10d0\u10dc\u10d2\u10e0\u10eb\u10da\u10d8\u10d5\u10dd\u10d1\u10d0', diff: '\u10e1\u10d8\u10e0\u10d7\u10e3\u10da\u10d4', km: '\u10d9\u10db', m: '\u10db', levels: ['', '\u10db\u10d0\u10e0\u10e2\u10d8\u10d5\u10d8', '\u10e1\u10d0\u10e8\u10e3\u10d0\u10da\u10dd', '\u10e0\u10d7\u10e3\u10da\u10d8', '\u10eb\u10d0\u10da\u10d8\u10d0\u10dc \u10e0\u10d7\u10e3\u10da\u10d8'], profile: '\u10e1\u10d8\u10db\u10d0\u10e6\u10da\u10d8\u10e1 \u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8', hint: '\u10d2\u10d0\u10e3\u10e7\u10d4\u10d5\u10d8\u10d7 \u10d2\u10e0\u10d0\u10e4\u10d8\u10d9\u10e1 \u10d3\u10d0 \u10e0\u10e3\u10d9\u10d0\u10d6\u10d4 \u10e8\u10d4\u10e1\u10d0\u10d1\u10d0\u10db\u10d8\u10e1 \u10d0\u10d3\u10d2\u10d8\u10da\u10e1 \u10dc\u10d0\u10ee\u10d0\u10d5\u10d7', months: ['\u10d8\u10d0\u10dc', '\u10d7\u10d4\u10d1', '\u10db\u10d0\u10e0', '\u10d0\u10de\u10e0', '\u10db\u10d0\u10d8', '\u10d8\u10d5\u10dc', '\u10d8\u10d5\u10da', '\u10d0\u10d2\u10d5', '\u10e1\u10d4\u10e5', '\u10dd\u10e5\u10e2', '\u10dc\u10dd\u10d4', '\u10d3\u10d4\u10d9'], when: '\u10e0\u10dd\u10d3\u10d8\u10e1 \u10ec\u10d0\u10d5\u10d8\u10d3\u10d4\u10d7', start: '\u10e1\u10d0\u10ec\u10e7\u10d8\u10e1\u10d8 \u10ec\u10d4\u10e0\u10e2\u10d8\u10da\u10d8', dir: '\u10d2\u10d6\u10d8\u10e1 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0', dl: '\u10e2\u10e0\u10d4\u10d9\u10d8\u10e1 \u10e9\u10d0\u10db\u10dd\u10e2\u10d5\u10d8\u10e0\u10d7\u10d5\u10d0', get: '\u10e0\u10dd\u10d2\u10dd\u10e0 \u10db\u10d8\u10d5\u10d8\u10d3\u10d4\u10d7', tips: '\u10e0\u10d0 \u10ec\u10d0\u10d5\u10d8\u10e6\u10dd\u10d7 \u10d3\u10d0 \u10e0\u10d0 \u10e3\u10dc\u10d3\u10d0 \u10d5\u10d8\u10ea\u10dd\u10d3\u10d4\u10d7', shape: { loop: '\u10ec\u10e0\u10d8\u10e3\u10da\u10d8 \u10db\u10d0\u10e0\u10e8\u10e0\u10e3\u10e2\u10d8', linear: '\u10ea\u10d0\u10da\u10db\u10ee\u10e0\u10d8\u10d5\u10d8 \u10db\u10d0\u10e0\u10e8\u10e0\u10e3\u10e2\u10d8', outback: '\u10d8\u10db\u10d0\u10d5\u10d4 \u10d2\u10d6\u10d8\u10d7 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0' }, topo: '\u10e0\u10d4\u10da\u10d8\u10d4\u10e4\u10d8', streets: '\u10e5\u10e3\u10e9\u10d4\u10d1\u10d8', sat: '\u10e1\u10d0\u10e2\u10d4\u10da\u10d8\u10e2\u10d8', startL: '\u10e1\u10e2\u10d0\u10e0\u10e2\u10d8', finishL: '\u10e4\u10d8\u10dc\u10d8\u10e8\u10d8', fs: '\u10e0\u10e3\u10d9\u10d0 \u10db\u10d7\u10d4\u10da \u10d4\u10d9\u10e0\u10d0\u10dc\u10d6\u10d4', orig: '\u10dd\u10e0\u10d8\u10d2\u10d8\u10dc\u10d0\u10da\u10d8 \u10e4\u10d0\u10d8\u10da\u10d8', note: 'GPX \u10e4\u10d0\u10d8\u10da\u10d8 \u10d2\u10d0\u10ee\u10e1\u10d4\u10dc\u10d8\u10d7 Maps.me-\u10e8\u10d8, Organic Maps-\u10e8\u10d8, Wikiloc-\u10e8\u10d8 \u10d0\u10dc GPS \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d0\u10e8\u10d8. KML \u10e4\u10d0\u10d8\u10da\u10d8 Google Earth-\u10e8\u10d8 \u10d8\u10ee\u10e1\u10dc\u10d4\u10d1\u10d0.' }, en: { dist: 'Distance', asc: 'Ascent', desc: 'Descent', max: 'Highest point', dur: 'Duration', diff: 'Difficulty', km: 'km', m: 'm', levels: ['', 'Easy', 'Moderate', 'Challenging', 'Difficult'], profile: 'Elevation profile', hint: 'Move along the chart to see the spot on the map', months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], when: 'Best time to go', start: 'Starting point', dir: 'Get directions', dl: 'Download the track', get: 'How to get there', tips: 'What to bring and good to know', shape: { loop: 'Loop', linear: 'One way', outback: 'Out and back' }, topo: 'Terrain', streets: 'Streets', sat: 'Satellite', startL: 'Start', finishL: 'Finish', fs: 'Full screen map', orig: 'Original file', note: 'Open the GPX file in Maps.me, Organic Maps, Wikiloc or your GPS device. The KML file opens in Google Earth.' } }; var t = LBL[D.lang] || LBL.ka; var NS = 'http:\/\/www.w3.org\/2000\/svg'; var RED = '#b8262c'; if (el._ecrMap) { el._ecrMap.remove(); el._ecrMap = null; } if (el._ecrResize) { window.removeEventListener('resize', el._ecrResize); } el.innerHTML = ''; el.className = 'ecr'; if (!document.getElementById('ecr-style')) { var st = document.createElement('style'); st.id = 'ecr-style'; st.textContent = [ '.ecr{--ecr-ink:#1e3328;--ecr-paper:#edf1ec;--ecr-moss:#4f6f43;--ecr-lichen:#a9bc97;--ecr-red:#b8262c;--ecr-slate:#56655d;--ecr-line:#d3dcd2;color:var(--ecr-ink);margin:24px 0 32px;line-height:1.6}', '.ecr *{box-sizing:border-box}', '.ecr ul,.ecr ol{list-style:none;margin:0;padding:0}.ecr li{margin:0}.ecr dl,.ecr dt,.ecr dd{margin:0;padding:0}', 'div.ecr h3.ecr-h{margin:0 0 10px;padding:0;font-size:18px;font-weight:700;line-height:1.35;letter-spacing:0;text-transform:none;color:var(--ecr-ink)}', '.ecr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border-top:1px solid var(--ecr-line);border-bottom:1px solid var(--ecr-line);margin:0 0 20px}', '.ecr-stat{padding:14px 16px 14px 0}.ecr-stat+.ecr-stat{padding-left:16px;border-left:1px solid var(--ecr-line)}', '.ecr-stat dt{font-size:13px;color:var(--ecr-slate);margin-bottom:2px}', '.ecr-stat dd{font-size:24px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}', '.ecr-stat dd small{font-size:14px;font-weight:400;color:var(--ecr-slate);margin-left:3px}', '.ecr-stat--diff dd{font-size:15px;font-weight:500;padding-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}', '.ecr-peaks{display:inline-flex;gap:2px}.ecr-peaks svg{width:14px;height:12px;fill:var(--ecr-line)}.ecr-peaks svg.on{fill:var(--ecr-ink)}.ecr-peaks.l4 svg.on{fill:var(--ecr-red)}', '.ecr-mapbox{background:#fff;border:1px solid var(--ecr-line);border-radius:6px;overflow:hidden;margin:0 0 20px}', '.ecr-map{height:clamp(320px,60vh,520px);background:#dfe6dd;position:relative;z-index:0}', '.ecr-map:fullscreen{height:100vh}', '.ecr-prof{padding:14px 16px 10px;border-top:1px solid var(--ecr-line)}', '.ecr-prof-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:14px;font-weight:600;margin-bottom:6px}', '.ecr-prof-cap span{font-weight:400;font-size:13px;color:var(--ecr-slate)}', '.ecr-chart{position:relative;height:160px;touch-action:pan-y;cursor:crosshair;user-select:none}', '.ecr-chart svg{display:block;width:100%;height:100%;overflow:visible}', '.ecr-chart text{font-size:11px;fill:var(--ecr-slate);font-family:inherit}', '.ecr-tip{position:absolute;top:0;transform:translateX(-50%);background:var(--ecr-ink);color:#fff;font-size:12px;line-height:1.3;padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none}', '.ecr-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:0 0 24px}', '.ecr-panel{background:var(--ecr-paper);border-radius:6px;padding:16px 18px}', '.ecr-panel p{margin:0 0 10px;font-size:15px}', '.ecr-muted{color:var(--ecr-slate)}', '.ecr-months{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}', '.ecr-months li{display:grid;place-items:center;height:30px;background:#fff;border-radius:3px;font-size:12px;color:var(--ecr-slate)}', '.ecr-months li.on{background:var(--ecr-moss);color:#fff;font-weight:600}', '.ecr a.ecr-btn,.ecr button.ecr-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0 6px 6px 0;padding:0 16px;border:0;border-radius:999px;background:var(--ecr-ink);color:#fff;font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;line-height:1;text-transform:none;letter-spacing:0}', '.ecr a.ecr-btn:hover,.ecr button.ecr-btn:hover{background:var(--ecr-moss);color:#fff}', '.ecr button.ecr-btn--ghost,.ecr a.ecr-btn--ghost{background:#fff;color:var(--ecr-ink);box-shadow:inset 0 0 0 1px var(--ecr-line)}', '.ecr .ecr-note{font-size:13px;line-height:1.5;margin:6px 0 0}', '.ecr-practical{display:grid;gap:20px}', '.ecr-practical p{margin:0 0 .7em}', '.ecr :focus-visible{outline:2px solid var(--ecr-red);outline-offset:2px}', '.ecr .leaflet-container{font-family:inherit;font-size:13px}', '.ecr-pin{display:block;width:22px;height:22px;border-radius:50%;background:var(--ecr-ink);border:3px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}', '.ecr-pin.fin{background:#fff;border-color:var(--ecr-ink)}', '.ecr-pin.wp{width:14px;height:14px;border-width:2px;background:var(--ecr-moss)}', '.ecr-pin.hv{width:16px;height:16px;border-width:2px;background:var(--ecr-red)}', '.ecr-fs{display:grid!important;place-items:center;width:34px;height:34px;background:#fff;cursor:pointer}', '.ecr-fs svg{width:16px;height:16px;fill:none;stroke:#1e3328;stroke-width:2}', '@media (max-width:560px){.ecr-stats{grid-template-columns:1fr 1fr}.ecr-stat,.ecr-stat+.ecr-stat{padding:12px 10px 12px 0;border-left:0}.ecr-stat:nth-child(even){padding-left:14px;border-left:1px solid var(--ecr-line)}.ecr-stat:nth-child(n+3){border-top:1px solid var(--ecr-line)}.ecr-stat dd{font-size:22px}}' ].join(''); document.head.appendChild(st); } function h(tag, cls, text) { var e = document.createElement(tag); if (cls) { e.className = cls; } if (text !== undefined && text !== null) { e.textContent = text; } return e; } function fmt(n, d) { return Number(n).toLocaleString(D.lang === 'en' ? 'en-US' : 'ka-GE', { minimumFractionDigits: d || 0, maximumFractionDigits: d || 0 }); } function km(v) { return fmt(v, v % 1 ? 1 : 0); } function paras(text, parent) { String(text).split(\/\\n+\/).forEach(function (line) { if (line.trim()) { parent.appendChild(h('p', '', line.trim())); } }); } var S = D.stats || {}; var dl = h('dl', 'ecr-stats'); function stat(label, value, unit) { if (value === null || value === undefined || value === '') { return; } var w = h('div', 'ecr-stat'); w.appendChild(h('dt', '', label)); var dd = h('dd', '', value); if (unit) { dd.appendChild(h('small', '', unit)); } w.appendChild(dd); dl.appendChild(w); } if (S.dist !== null && S.dist !== undefined) { stat(t.dist, km(S.dist), t.km); } if (S.asc !== null && S.asc !== undefined) { stat(t.asc, fmt(S.asc), t.m); } if (S.desc !== null && S.desc !== undefined) { stat(t.desc, fmt(S.desc), t.m); } if (S.max !== null && S.max !== undefined) { stat(t.max, fmt(S.max), t.m); } if (D.duration) { stat(t.dur, D.duration, ''); } if (D.difficulty) { var dw = h('div', 'ecr-stat ecr-stat--diff'); dw.appendChild(h('dt', '', t.diff)); var dd2 = h('dd'); var pk = h('span', 'ecr-peaks l' + D.difficulty); for (var i = 1; i <= 4; i++) { pk.insertAdjacentHTML('beforeend', '<svg viewBox=\"0 0 12 10\" aria-hidden=\"true\" class=\"' + (i <= D.difficulty ? 'on' : '') + '\"><path d=\"M0 10 L6 0 L12 10 Z\"\/><\/svg>'); } dd2.appendChild(pk); dd2.appendChild(h('span', '', t.levels[D.difficulty])); dw.appendChild(dd2); dl.appendChild(dw); } if (dl.children.length) { el.appendChild(dl); } var segs = D.segs || []; var profile = []; var hasEle = false; (function () { var dist = 0; var prev = null; segs.forEach(function (s) { s.forEach(function (p) { if (prev) { var r = Math.PI \/ 180; var a = Math.sin((p[0] - prev[0]) * r \/ 2); var b = Math.sin((p[1] - prev[1]) * r \/ 2); var c = a * a + Math.cos(prev[0] * r) * Math.cos(p[0] * r) * b * b; dist += 2 * 6371.0088 * Math.asin(Math.min(1, Math.sqrt(c))); } if (p[2] !== null && p[2] !== undefined) { hasEle = true; profile.push([dist, p[2], p[0], p[1]]); } prev = p; }); }); })(); var mapEl = null; var chart = null; if (segs.length) { var box = h('div', 'ecr-mapbox'); mapEl = h('div', 'ecr-map'); box.appendChild(mapEl); if (hasEle && profile.length > 1) { var pf = h('figure', 'ecr-prof'); pf.style.margin = '0'; var cap = h('figcaption', 'ecr-prof-cap', t.profile); cap.appendChild(h('span', '', t.hint)); pf.appendChild(cap); chart = h('div', 'ecr-chart'); pf.appendChild(chart); box.appendChild(pf); } el.appendChild(box); } var panels = h('div', 'ecr-panels'); if (D.months && D.months.length) { var pm = h('section', 'ecr-panel'); pm.appendChild(h('h3', 'ecr-h', t.when)); var ol = h('ol', 'ecr-months'); t.months.forEach(function (name, idx) { var li = h('li', D.months.indexOf(idx + 1) !== -1 ? 'on' : '', name); ol.appendChild(li); }); pm.appendChild(ol); panels.appendChild(pm); } var first = segs.length ? segs[0][0] : null; if (first || D.start) { var ps = h('section', 'ecr-panel'); ps.appendChild(h('h3', 'ecr-h', t.start)); if (D.start) { ps.appendChild(h('p', '', D.start)); } if (D.shape && t.shape[D.shape]) { ps.appendChild(h('p', 'ecr-muted', t.shape[D.shape])); } if (first) { var a = h('a', 'ecr-btn', t.dir); a.href = 'https:\/\/www.google.com\/maps\/dir\/?api=1&destination=' + first[0] + ',' + first[1]; a.target = '_blank'; a.rel = 'noopener'; ps.appendChild(a); } panels.appendChild(ps); } if (segs.length) { var pd = h('section', 'ecr-panel'); pd.appendChild(h('h3', 'ecr-h', t.dl)); var name = (D.file || 'route').replace(\/[^\\w\\-]+\/g, '-'); var esc = function (s) { return String(s).replace(\/&\/g, '&amp;').replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;').replace(\/\"\/g, '&quot;'); }; var gpx = function () { var o = ['<?xml version=\"1.0\" encoding=\"UTF-8\"?>', '<gpx version=\"1.1\" creator=\"ecotourism.ge\" xmlns=\"http:\/\/www.topografix.com\/GPX\/1\/1\">']; (D.wpts || []).forEach(function (w) { o.push('<wpt lat=\"' + w[0] + '\" lon=\"' + w[1] + '\"><name>' + esc(w[2] || '') + '<\/name><\/wpt>'); }); o.push('<trk><name>' + esc(D.title || name) + '<\/name>'); segs.forEach(function (s) { o.push('<trkseg>'); s.forEach(function (p) { o.push('<trkpt lat=\"' + p[0] + '\" lon=\"' + p[1] + '\">' + (p[2] !== null && p[2] !== undefined ? '<ele>' + p[2] + '<\/ele>' : '') + '<\/trkpt>'); }); o.push('<\/trkseg>'); }); o.push('<\/trk><\/gpx>'); return o.join('\\n'); }; var kml = function () { var o = ['<?xml version=\"1.0\" encoding=\"UTF-8\"?>', '<kml xmlns=\"http:\/\/www.opengis.net\/kml\/2.2\"><Document><name>' + esc(D.title || name) + '<\/name>', '<Style id=\"r\"><LineStyle><color>ff2c26b8<\/color><width>4<\/width><\/LineStyle><\/Style>']; segs.forEach(function (s) { o.push('<Placemark><styleUrl>#r<\/styleUrl><LineString><tessellate>1<\/tessellate><coordinates>' + s.map(function (p) { return p[1] + ',' + p[0] + (p[2] !== null && p[2] !== undefined ? ',' + p[2] : ''); }).join(' ') + '<\/coordinates><\/LineString><\/Placemark>'); }); (D.wpts || []).forEach(function (w) { o.push('<Placemark><name>' + esc(w[2] || '') + '<\/name><Point><coordinates>' + w[1] + ',' + w[0] + '<\/coordinates><\/Point><\/Placemark>'); }); o.push('<\/Document><\/kml>'); return o.join('\\n'); }; var save = function (text, ext, mime) { var blob = new Blob([text], { type: mime }); var url = URL.createObjectURL(blob); var link = document.createElement('a'); link.href = url; link.download = name + '.' + ext; document.body.appendChild(link); link.click(); setTimeout(function () { URL.revokeObjectURL(url); link.remove(); }, 1000); }; var bg = h('button', 'ecr-btn', 'GPX'); bg.type = 'button'; bg.addEventListener('click', function () { save(gpx(), 'gpx', 'application\/gpx+xml'); }); var bk = h('button', 'ecr-btn ecr-btn--ghost', 'KML'); bk.type = 'button'; bk.addEventListener('click', function () { save(kml(), 'kml', 'application\/vnd.google-earth.kml+xml'); }); pd.appendChild(bg); pd.appendChild(bk); if (D.orig) { var ao = h('a', 'ecr-btn ecr-btn--ghost', t.orig); ao.href = D.orig; ao.target = '_blank'; ao.rel = 'noopener'; pd.appendChild(ao); } pd.appendChild(h('p', 'ecr-note ecr-muted', t.note)); panels.appendChild(pd); } if (panels.children.length) { el.appendChild(panels); } if (D.getting || D.tips) { var pr = h('div', 'ecr-practical'); if (D.getting) { var s1 = h('section'); s1.appendChild(h('h3', 'ecr-h', t.get)); paras(D.getting, s1); pr.appendChild(s1); } if (D.tips) { var s2 = h('section'); s2.appendChild(h('h3', 'ecr-h', t.tips)); paras(D.tips, s2); pr.appendChild(s2); } el.appendChild(pr); } if (!mapEl) { return; } function withLeaflet(cb) { if (window.L && window.L.map) { cb(); return; } var q = window.__ecrQueue = window.__ecrQueue || []; q.push(cb); if (q.length > 1) { return; } var css = document.createElement('link'); css.rel = 'stylesheet'; css.href = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css'; document.head.appendChild(css); var js = document.createElement('script'); js.src = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js'; js.onload = function () { var list = window.__ecrQueue; window.__ecrQueue = []; list.forEach(function (f) { f(); }); }; document.head.appendChild(js); } withLeaflet(function () { var L = window.L; var map = L.map(mapEl, { scrollWheelZoom: false, zoomSnap: 0.5 }); el._ecrMap = map; var topo = L.tileLayer('https:\/\/{s}.tile.opentopomap.org\/{z}\/{x}\/{y}.png', { maxZoom: 17, attribution: 'Map data \u00a9 <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a>, SRTM | Style \u00a9 <a href=\"https:\/\/opentopomap.org\">OpenTopoMap<\/a> (CC-BY-SA)' }).addTo(map); var layers = {}; layers[t.topo] = topo; layers[t.streets] = L.tileLayer('https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png', { maxZoom: 19, attribution: '\u00a9 <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a>' }); layers[t.sat] = L.tileLayer('https:\/\/server.arcgisonline.com\/ArcGIS\/rest\/services\/World_Imagery\/MapServer\/tile\/{z}\/{y}\/{x}', { maxZoom: 19, attribution: 'Imagery \u00a9 Esri' }); L.control.layers(layers, null).addTo(map); L.control.scale({ imperial: false }).addTo(map); map.once('focus click', function () { map.scrollWheelZoom.enable(); }); if (mapEl.requestFullscreen) { var Fs = L.Control.extend({ options: { position: 'topleft' }, onAdd: function () { var wrap = L.DomUtil.create('div', 'leaflet-bar'); var b = L.DomUtil.create('a', 'ecr-fs', wrap); b.href = '#'; b.title = t.fs; b.setAttribute('role', 'button'); b.setAttribute('aria-label', t.fs); b.innerHTML = '<svg viewBox=\"0 0 16 16\"><path d=\"M1 5V1h4M11 1h4v4M15 11v4h-4M5 15H1v-4\"\/><\/svg>'; L.DomEvent.on(b, 'click', function (e) { L.DomEvent.preventDefault(e); if (document.fullscreenElement) { document.exitFullscreen(); } else { mapEl.requestFullscreen(); } }); L.DomEvent.disableClickPropagation(wrap); return wrap; } }); map.addControl(new Fs()); document.addEventListener('fullscreenchange', function () { setTimeout(function () { map.invalidateSize(); }, 60); }); } var lines = segs.map(function (s) { return s.map(function (p) { return [p[0], p[1]]; }); }); L.polyline(lines, { color: '#fff', weight: 8, opacity: 0.9, interactive: false }).addTo(map); var route = L.polyline(lines, { color: RED, weight: 4, lineJoin: 'round' }).addTo(map); map.fitBounds(route.getBounds(), { padding: [24, 24] }); var icon = function (cls, size) { return L.divIcon({ className: '', html: '<span class=\"ecr-pin ' + cls + '\"><\/span>', iconSize: [size, size], iconAnchor: [size \/ 2, size \/ 2] }); }; var lastSeg = lines[lines.length - 1]; if (D.shape !== 'loop') { L.marker(lastSeg[lastSeg.length - 1], { icon: icon('fin', 22), keyboard: false }).bindTooltip(t.finishL).addTo(map); } L.marker(lines[0][0], { icon: icon('', 22), keyboard: false, zIndexOffset: 500 }).bindTooltip(t.startL).addTo(map); (D.wpts || []).forEach(function (w) { if (!w[2]) { return; } var pop = document.createElement('div'); pop.appendChild(h('strong', '', w[2])); if (w[3]) { pop.appendChild(document.createElement('br')); pop.appendChild(document.createTextNode(w[3])); } L.marker([w[0], w[1]], { icon: icon('wp', 14) }).bindPopup(pop).addTo(map); }); if (!chart) { return; } var hover = L.marker(lines[0][0], { icon: icon('hv', 16), interactive: false, keyboard: false }); var total = profile[profile.length - 1][0]; var eles = profile.map(function (p) { return p[1]; }); var mn = Math.min.apply(null, eles); var mx = Math.max.apply(null, eles); var nice = function (range, n) { var raw = range \/ n; var mag = Math.pow(10, Math.floor(Math.log(raw) \/ Math.LN10)); var f = raw \/ mag; return (f < 1.5 ? 1 : f < 3 ? 2 : f < 7 ? 5 : 10) * mag; }; var pad = Math.max(20, (mx - mn) * 0.12); var ys = nice(mx - mn + pad * 2, 3); var y0 = Math.floor((mn - pad) \/ ys) * ys; var y1 = Math.ceil((mx + pad \/ 2) \/ ys) * ys; var tip = h('div', 'ecr-tip'); tip.hidden = true; var geo = null; var cur = null; var dot = null; var sv = function (n, at) { var e = document.createElementNS(NS, n); for (var k in at) { e.setAttribute(k, at[k]); } return e; }; var draw = function () { var W = chart.clientWidth; var H = chart.clientHeight; if (!W) { return; } var m = { l: 44, r: 8, t: 22, b: 20 }; var iw = W - m.l - m.r; var ih = H - m.t - m.b; var x = function (k) { return m.l + (k \/ total) * iw; }; var y = function (e) { return m.t + ih - ((e - y0) \/ (y1 - y0)) * ih; }; geo = { x: x, y: y, m: m, iw: iw }; chart.innerHTML = ''; var svg = sv('svg', { viewBox: '0 0 ' + W + ' ' + H, 'aria-hidden': 'true' }); for (var e = y0; e <= y1 + 0.1; e += ys) { svg.appendChild(sv('line', { x1: m.l, x2: W - m.r, y1: y(e), y2: y(e), stroke: '#d3dcd2', 'stroke-width': 1 })); var lb = sv('text', { x: m.l - 6, y: y(e) + 4, 'text-anchor': 'end' }); lb.textContent = fmt(e); svg.appendChild(lb); } var xs = nice(total, Math.max(3, Math.floor(iw \/ 90))); for (var k = 0; k <= total + 1e-9; k += xs) { if (k > 0 && x(total) - x(k) < 34) { continue; } var xl = sv('text', { x: x(k), y: H - 4, 'text-anchor': k === 0 ? 'start' : 'middle' }); xl.textContent = fmt(k, xs < 1 ? 1 : 0); svg.appendChild(xl); } var un = sv('text', { x: W - m.r, y: H - 4, 'text-anchor': 'end' }); un.textContent = t.km; svg.appendChild(un); var d = ''; profile.forEach(function (p, i) { d += (i ? 'L' : 'M') + x(p[0]).toFixed(1) + ',' + y(p[1]).toFixed(1); }); svg.appendChild(sv('path', { d: d + 'L' + x(total) + ',' + (m.t + ih) + 'L' + m.l + ',' + (m.t + ih) + 'Z', fill: '#a9bc97', 'fill-opacity': 0.55 })); svg.appendChild(sv('path', { d: d, fill: 'none', stroke: RED, 'stroke-width': 2 })); cur = sv('line', { y1: m.t, y2: m.t + ih, stroke: '#1e3328', 'stroke-width': 1, visibility: 'hidden' }); dot = sv('circle', { r: 5, fill: RED, stroke: '#fff', 'stroke-width': 2, visibility: 'hidden' }); svg.appendChild(cur); svg.appendChild(dot); chart.appendChild(svg); chart.appendChild(tip); }; var nearest = function (k) { var lo = 0; var hi = profile.length - 1; while (hi - lo > 1) { var mid = (lo + hi) >> 1; if (profile[mid][0] < k) { lo = mid; } else { hi = mid; } } return (k - profile[lo][0] < profile[hi][0] - k) ? profile[lo] : profile[hi]; }; var move = function (ev) { if (!geo) { return; } var r = chart.getBoundingClientRect(); var k = Math.max(0, Math.min(total, ((ev.clientX - r.left - geo.m.l) \/ geo.iw) * total)); var p = nearest(k); var cx = geo.x(p[0]); cur.setAttribute('x1', cx); cur.setAttribute('x2', cx); cur.setAttribute('visibility', 'visible'); dot.setAttribute('cx', cx); dot.setAttribute('cy', geo.y(p[1])); dot.setAttribute('visibility', 'visible'); tip.hidden = false; tip.textContent = fmt(p[0], 1) + ' ' + t.km + ', ' + fmt(p[1]) + ' ' + t.m; var half = tip.offsetWidth \/ 2; tip.style.left = Math.max(half, Math.min(chart.clientWidth - half, cx)) + 'px'; hover.setLatLng([p[2], p[3]]); if (!map.hasLayer(hover)) { hover.addTo(map); } }; var leave = function () { if (cur) { cur.setAttribute('visibility', 'hidden'); dot.setAttribute('visibility', 'hidden'); } tip.hidden = true; map.removeLayer(hover); }; chart.addEventListener('pointermove', move); chart.addEventListener('pointerdown', move); chart.addEventListener('pointerleave', leave); chart.addEventListener('pointercancel', leave); draw(); var tm = null; el._ecrResize = function () { clearTimeout(tm); tm = setTimeout(draw, 120); }; window.addEventListener('resize', el._ecrResize); }); })(document.getElementById(\"ecr-uerucq\"),D);})();<\/script>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"\u10d9\u10e3\u10e1 \u10e2\u10d1\u10d8\u10d3\u10d0\u10dc \u10db\u10d7\u10d0\u10ec\u10db\u10d8\u10dc\u10d3\u10d0\u10db\u10d3\u10d4 \u10e4\u10d4\u10ee\u10d8\u10d7\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/mvWvMc2dIzo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Discover Turtle Lake\u2019s biodiversity and enjoy panoramic views of Tbilisi along a single trail.<\/p>\n","protected":false},"author":3,"featured_media":3481,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-3475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecotrails"],"_links":{"self":[{"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/posts\/3475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/comments?post=3475"}],"version-history":[{"count":2,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/posts\/3475\/revisions"}],"predecessor-version":[{"id":3483,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/posts\/3475\/revisions\/3483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/media\/3481"}],"wp:attachment":[{"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/media?parent=3475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/categories?post=3475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ecotourism.ge\/en\/wp-json\/wp\/v2\/tags?post=3475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}