slCena1 = 'На основании заданного местоположения автомобтля - эвакуация бесплатно.'; slCena2 = 'На основании заданного местоположения автомобтля – цена эвакуации 300 крон.'; slCena3 = 'На основании заданного местоположения автомобтля – цена эвакуации 500 крон.'; slCena4 = 'На основании заданного местоположения автомобтля – цена эвакуации 800 крон.'; slCena5 = 'На основании заданного местоположения автомобтля – звоните что бы уточнить цену эвакуации.'; slMistoNenalezeno = 'Данное местоположение не было найдено, проверьте пожалуйста правильность данных. Попробуйте внести данные ближайшего населённого пункта.'; slVyplnitMesto = 'Если желаете узнать ориентировочную цену эвакуации, нет необходмости заполнять целый формуляр, достаточно выполнить только поле «Адрес» .' // http://www.1stwebdesigner.com/tutorials/distance-finder-google-maps-api/ var location1; var location2; var address1; var address2; var latlng; var geocoder; var map; var distance; function vratCenuNaZakladeVzdalenosti(vzdal, sPopisem) { vzdal = parseFloat((vzdal).replace(',','.')); if (!(vzdal > -1) && (vzdal < 1400)) { zobrazChybuUmisteni(); return false; } if (vzdal < 17) cena = sPopisem?slCena1:'0 Kč' else if (vzdal < 25) cena = sPopisem?slCena2:'300 Kč' else if (vzdal < 35) cena = sPopisem?slCena3:'500 Kč' else if (vzdal < 50) cena = sPopisem?slCena4:'800 Kč' else cena = sPopisem?slCena5:'na dotaz'; return cena; } function vypoctiCenuPrvniFaze(idDivu) { //id divu .skrytyBlok adresa = jq('#onlineObjednavkaForm input#adresa-mesto, #'+idDivu+' .vyhledavanaAdresa').val(); if (adresa.length>3) { initialize(idDivu, false); //tímto bude zavolána i vypoctiCenuDruhaFaze() } else zobrazChybuUmisteni(idDivu); jq('#'+idDivu+' .zjisteniCenyOdtahu_mapa').show(); } function vypoctiCenuDruhaFaze(idDivu) { // už máme k dispozici globální proměnnou vzdalenost jq('#'+idDivu+' .vypoctenaCenaInfo').html(vratCenuNaZakladeVzdalenosti(vzdalenost, true)); jq('div.bublina.vypoctenaCenaInfo').show(); if (idDivu=='blokVypoctuCenyOdtahu2') jq('input#vozidlo-vypoctenaCenaOdtahu').val(vratCenuNaZakladeVzdalenosti(vzdalenost, false)); } function zobrazChybuUmisteni(idDivu) { textChybyUmisteni = slMistoNenalezeno; if (idDivu=='blokVypoctuCenyOdtahu2') textChybyUmisteni = textChybyUmisteni + '\n\n'+slVyplnitMesto; alert(textChybyUmisteni); jq('#'+idDivu+' .zjisteniCenyOdtahu_mapa').hide(); } function vypoctiCenuNezobrazujInfo(idDivu) { //id divu .skrytyBlok adresa = jq('#onlineObjednavkaForm input#adresa-mesto, #'+idDivu+' .vyhledavanaAdresa').val(); if (adresa.length>3) { initialize(idDivu, true); //tímto nebude zavolána vypoctiCenuDruhaFaze() } else jq('input#vozidlo-vypoctenaCenaOdtahu').val('?'); } // NEPŮVODNÍ ALE UPRAVENÉ FUNKCE // finds the coordinates for the two locations and calls the showMap() function function initialize(idDivu, bezInfa) { geocoder = new google.maps.Geocoder(); // creating a new geocode object // getting the two address values address1 = adresa+', Czech Republic'; //address2 = document.getElementById("address2").value; address2 = 'Praha, Žitná, Czech Republic'; // finding out the coordinates if (geocoder) { geocoder.geocode( { 'address': address1}, function(results, status) { //alert(status); if (status == google.maps.GeocoderStatus.OK) { //location of first address (latitude + longitude) location1 = results[0].geometry.location; } else { //alert("Geocode was not successful for the following reason: " + status); if (!bezInfa) zobrazChybuUmisteni(); return false; } }); geocoder.geocode( { 'address': address1}, function(results, status) { //alert(status); if (status == google.maps.GeocoderStatus.OK) { //location of first address (latitude + longitude) location1 = results[0].geometry.location; } else { //alert("Geocode was not successful for the following reason: " + status); if (!bezInfa) zobrazChybuUmisteni(); return false; } }); geocoder.geocode( { 'address': address2}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { //location of second address (latitude + longitude) location2 = results[0].geometry.location; // calling the showMap() function to create and show the map var t=setTimeout('showMap("'+idDivu+'", '+bezInfa+')',300); //časování, protože z nevysvětlitelnýho důvodu se bez někdy mapa někdy zaktualizuje až na druhý click } else { alert("Geocode was not successful for the following reason: " + status); } }); } } // creates and shows the map function showMap(idDivu, bezInfa) { // center of the map (compute the mean value between the two locations) latlng = new google.maps.LatLng(location1.lat(),location1.lng()); // set map options // set zoom level // set center // map type var mapOptions = { zoom: 11, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, streetViewControl: false }; // create a new map object // set the div id where it will be shown // set the map options map = new google.maps.Map(jq('#'+idDivu+' .zjisteniCenyOdtahu_mapa')[0], mapOptions); var marker1 = new google.maps.Marker({ map: map, position: location1, title: "Vaše umístění" }); // show route between the points directionsService = new google.maps.DirectionsService(); directionsDisplay = new google.maps.DirectionsRenderer( { suppressMarkers: true, suppressInfoWindows: true }); directionsDisplay.setMap(map); var request = { origin:location1, destination:location2, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { //directionsDisplay.setDirections(response); vzdalenost = response.routes[0].legs[0].distance.text; vzdalenostSPopisem = "The distance between the two points on the chosen route is: "+vzdalenost; //distance += "
The aproximative driving time is: "+response.routes[0].legs[0].duration.text; } //alert(156); if (bezInfa) { jq('input#vozidlo-vypoctenaCenaOdtahu').val(vratCenuNaZakladeVzdalenosti(vzdalenost, false)); //alert(vratCenuNaZakladeVzdalenosti(vzdalenost, false)); } else vypoctiCenuDruhaFaze(idDivu); }); }