Exemplo n.º 1
0
//VARIABLE Conde de Peñalver 51:
//array(2){["latitude"]=>float(40.4363505) ["longitude"]=>float(-3.685144)}
//Los marcadores identifican a los globitos o chinchetas en el mapa.
//El formato de los indices del array a pasar en el constructor debe ser el siguiente:
//title : es equivalente al "tooltiptext" que aparece cuando se pasa el puntero
//por encima.
//content: el valor que se mostrará en el popup informativo. Se puede incluir html,
//controles y eventos.
//latitude, longitude: coordenadas de tipo real
//PENDIENTE: Un indice "address" para poder crear un marcador directamente desde
//este dato. De momento no lo hace.
//El orden de los arrays anidados influira en el número que se asigna al marcador.
$arMarcadores[] = array("title" => "uno ", "content" => "<b>Content 1</b><input type=\"text\" value=\"marcador uno\">", "latitude" => "40.5475437", "longitude" => "-3.6420912");
$arMarcadores[] = array("title" => "dos ", "content" => "<b>Content 2</b>", "latitude" => "40.4363505", "longitude" => "-3.685144");
$arMarcadores[] = array("title" => "tres ", "content" => "<b>Content 3</b>", "latitude" => "41.4166909", "longitude" => "-3.7003454");
$oGoogleMap = new HelperGoogleMaps3($arMarcadores);
//Configuramos el zoom
$oGoogleMap->set_zoom(7);
//Dibujamos las lineas entre los marcadores (pines)
//$oGoogleMap->draw_lines();
//Tamaño del mapa
$oGoogleMap->set_size_container(500, 500);
$oGoogleMap->set_size_unit('pt');
$oGoogleMap->draw_routes();
$oGoogleMap->set_route_color("black");
$oGoogleMap->set_marker_color("green");
$oGoogleMap->set_route_width(2);
//No se mostrarán numeros en los pines de googlemaps
//$oGoogleMap->set_markers_numbers_off();
//Calcula la distancia entre las chinchetas
$fDistancia = $oGoogleMap->sum_distance();
function get_markers_and_stops($arTrazados, $iNumRuta = "")
{
    //bug($arTrazados);
    //Objeto vacio. Necesario para calcular distancia y tiempo
    $oGoogleMap3 = new HelperGoogleMaps3();
    $arMarkers = array();
    $arStops = array();
    $arReturn = array();
    //Pasar de rutas a marcadores:
    if (!empty($arTrazados)) {
        //Datos de la parada inicial. Se usará para calcular tiempo y distancia
        //a las paradas
        $arParadInicial["latitude"] = $arTrazados[0]["Latitud"];
        $arParadInicial["longitude"] = $arTrazados[0]["Longitud"];
        $arParadInicial["hora"] = $arTrazados[0]["Hora"];
        $iNumParada = 0;
        foreach ($arTrazados as $i => $arTrazado) {
            //bug($i);
            $sLatitude = $arTrazado["Latitud"];
            $sLongitud = $arTrazado["Longitud"];
            $isParada = $arTrazado["Esparada"] == "1";
            //Para las paradas distintas a la inicial
            if ($i > 0) {
                //Si es un punto mayor al inicial y es parada calculo distancia y tiempo
                if ($isParada) {
                    $sHora = $arTrazado["Hora"];
                    $iAlumnosSuben = $arTrazado["Alumnos_Suben"];
                    $iAlumnosBajan = $arTrazado["Alumnos_Bajan"];
                    $arStops[] = $i;
                    $iNumParada++;
                    //Datos para calculo de tiempo y distancia desde la parada 0
                    $arDestino = array("latitude" => $sLatitude, "longitude" => $sLongitud);
                    //bug($arParadInicial,"parinic"); bug($arDestino,"destino $i");
                    $arDistanciaHora = $oGoogleMap3->get_distance_and_time($arParadInicial, $arDestino);
                    //bug($arDistanciaHora,"distancia hora$i"); //die;
                    $sDistancia = $arDistanciaHora["distance"]["km"];
                    $sTiempo = custom_calculate_interval($arParadInicial["hora"], $sHora);
                } else {
                    $sTitulo = "";
                    $sContenido = "";
                }
            } else {
                $isParada = true;
                $arStops[] = $i;
                $iNumParada++;
                $sHora = $arTrazado["Hora"];
                $iAlumnosSuben = $arTrazado["Alumnos_Suben"];
                $iAlumnosBajan = $arTrazado["Alumnos_Bajan"];
                $sDistancia = 0;
                $sTiempo = 0;
            }
            //si es parada se crea titulo y contenido
            if ($isParada) {
                $sTitulo = $arTrazado["Parada"];
                $sContenido = "<b>" . $sTitulo . "</b><br/>";
                $sContenido .= "<div id=\"divParada_{$iNumRuta}" . "_" . "{$iNumParada}\" style=\"border:1px solid black; text-align:left; padding:4px;\">";
                $sContenido .= "Detalle de la parada: {$iNumParada} <br/>";
                $sContenido .= "Hora de la parada: {$sHora}<br/>";
                $sContenido .= "Alumnos que suben: {$iAlumnosSuben} <br/>";
                $sContenido .= "Alumnos que bajan: {$iAlumnosBajan} <br/>";
                $sContenido .= "Distancia del trayecto: {$sDistancia}<br/>";
                $sContenido .= "Tiempo del trayecto: {$sTiempo}";
                $sContenido .= "</div>";
            }
            $arMarkers[] = array("title" => $sTitulo, "content" => $sContenido, "latitude" => $sLatitude, "longitude" => $sLongitud);
            //$sTitulo = "";
        }
        //Fin foreach de paradas
    }
    //bug($arMarkers);
    $arReturn["markers"] = $arMarkers;
    $arReturn["stops"] = $arStops;
    //bug($arReturn);
    return $arReturn;
}