A PHP Error was encountered
Severity: Notice
Message: Undefined variable: hero
Filename: zavodliftov/index.php
Line Number: 12
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: hero
Filename: zavodliftov/index.php
Line Number: 12
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: hero
Filename: zavodliftov/index.php
Line Number: 16
Современный лифт — стиль, тишина и безопасность
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: hero
Filename: zavodliftov/index.php
Line Number: 39
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: zavodliftov/index.php
Line Number: 39
A PHP Error was encountered
Severity: Notice
Message: Undefined index: city
Filename: zavodliftov/block-map.php
Line Number: 30
Доставка сначала осуществляется к нам в шоу-рум в Москве дальше
A PHP Error was encountered
Severity: Notice
Message: Undefined index: city
Filename: zavodliftov/block-map.php
Line Number: 30
A PHP Error was encountered
Severity: Notice
Message: Undefined index: lat
Filename: zavodliftov/block-map.php
Line Number: 49
A PHP Error was encountered
Severity: Notice
Message: Undefined index: lon
Filename: zavodliftov/block-map.php
Line Number: 49
Растаможка, комплектация, проверка' }; // Источники поставок с флагами // Иконки берутся с flagcdn.com, код страны в ISO-2 const sources = [ { country: 'Италия', iso2: 'it', coords: [45.4642, 9.19], // Милан пример color: '#1e90ff' }, { country: 'Китай', iso2: 'cn', coords: [31.2304, 121.4737], // Шанхай пример color: '#e74c3c' }, { country: 'Германия', iso2: 'de', coords: [52.52, 13.405], // Берлин color: '#27ae60' }, { country: 'США', iso2: 'us', coords: [40.7128, -74.006], // Нью-Йорк color: '#8e44ad' }, { country: 'Турция', iso2: 'tr', coords: [41.0082, 28.9784], // Стамбул color: '#f39c12' }, { country: 'Греция', iso2: 'gr', coords: [37.9838, 23.7275], // Афины color: '#16a085' } ]; // Хелперы function flagIcon(iso2){ return L.icon({ iconUrl: `https://flagcdn.com/w40/${iso2}.png`, iconSize: [28, 20], iconAnchor: [14, 10], popupAnchor: [0, -10] }); } function pinIcon(){ return L.icon({ iconUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png', iconRetinaUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png', shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png', iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -28], shadowSize: [41, 41] }); } function haversine(a, b){ const R = 6371; const toRad = d => d * Math.PI / 180; const dLat = toRad(b[0] - a[0]); const dLon = toRad(b[1] - a[1]); const lat1 = toRad(a[0]); const lat2 = toRad(b[0]); const h = Math.sin(dLat/2)**2 + Math.cos(lat1)*Math.cos(lat2)*Math.sin(dLon/2)**2; return 2 * R * Math.asin(Math.sqrt(h)); } // Маркер хаба и конца const hubMarker = L.marker(hub.coords, { icon: pinIcon(), title: hub.name }) .addTo(map).bindPopup(hub.popup); const endMarker = L.marker(endCity.coords, { icon: pinIcon(), title: endCity.name }) .addTo(map).bindPopup(`${endCity.name}
Доставка лифтового оборудования, монтаж, ПНР`); // Маршруты из источников через Москву к конечному городу let bounds = L.latLngBounds([hub.coords, endCity.coords]); let totalKm = 0; sources.forEach(src => { const popup = `Производство ${src.country}
Отгрузка лифтового оборудования`; L.marker(src.coords, { icon: flagIcon(src.iso2), title: `Производство ${src.country}` }) .addTo(map).bindPopup(popup); const segStyle = { color: src.color, weight: 4, dashArray: '8 6' }; // Страна -> Москва L.polyline([src.coords, hub.coords], segStyle).addTo(map); totalKm += haversine(src.coords, hub.coords); // Москва -> конечный город L.polyline([hub.coords, endCity.coords], segStyle).addTo(map); totalKm += haversine(hub.coords, endCity.coords); bounds.extend(src.coords); }); // Подогнать карту map.fitBounds(bounds.pad(0.2)); // Легенда const legend = L.control({ position: 'bottomleft' }); legend.onAdd = function(){ const div = L.DomUtil.create('div', 'legend'); let html = `Маршруты до ${endCity.name}
`; sources.forEach(s => { html += `${s.country}
`; }); html += `Итоговая протяженность всех сегментов ≈ ${Math.round(totalKm)} км`; div.innerHTML = html; return div; }; legend.addTo(map); https://api.whatsapp.com/send/?phone=&text=%D0%94%D0%BE%D0%B1%D1%80%D1%8B%D0%B9+%D0%B4%D0%B5%D0%BD%D1%8C.+%D0%A5%D0%BE%D1%82%D0%B5%D0%BB%D0%B8+%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C+%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F+%D0%BF%D0%BE+%D0%BF%D0%B0%D1%80%D1%82%D0%BD%D0%B5%D1%80%D1%81%D1%82%D0%B2%D1%83&app_absent=0" class="inline-block bg-accent hover:bg-accent-hover text-button-text font-semibold px-6 py-3 rounded-lg transition-colors duration-300"> Обсудить партнёрство