No has iniciado sesión
Conectar al sistema | Registrar usuario
Foros Mensajes No contestados Conversaciones Mensaje
 

mapa dinámico

Buenas a todos,

Estoy haciendo una web con php y me ha surgido un problemilla con el que quizá me podréis ayudar.

Quiero hacer un mapa de un parking, que segun esten ocupadas las plazas, las marque con un recuadro verde o rojo.

Si la plaza está ocupada o no, lo tengo puesto en una base de datos y se como conectarme a ella con PHP y todo.

Lo que quiero saber es cómo modificar la imágen para que al cargar la página, ponga un cuadrito verde o rojo en un determinado punto de la imagen según un valor que le pase por parámetro.

¿Es posible hacer esto en php?¿Cómo?

Muchas gracias.
0 votos
Preguntado hace 7 años y 150 dias por hummer84  3 mensajes  
 

Re: mapa dinámico

Hola, no se si lo e comprendido bien, es esto:
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
<?php
 
if($var1 == libre)
  {
  
$recuadro="./verde.jpg";
  }
else
  {
  
$recuadro="./rojo.jpg";
  }
 
?>
 

 
000 
001 
002 
003 
004 

 
<img src="<?php echo $recuadro?>">
 
 
Saludos.
Quisiera ser tan alto como la luna...
1 votos
Preguntado hace 7 años y 154 dias , editado  hace 7 años y 154 dias por klaufel  159 mensajes  
 

Re: mapa dinámico

Lo que podrías hacer es hacer la imágen del mapa con los colores y todo al vuelo (en php con GD). La idea sería partir de una imagen que tengas el mapa del parking con recuadros en blanco que colorearías al vuelo.

Para colorearlos usarías la función imagefill() para cada recuadro pasándole como parámetros la imagen del mapa, las coordenadas de cada recuadro y el color (verde o rojo). Te escribo un ejemplo.
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
013 
014 
015 
016 
017 
018 
019 
020 
021 
022 
023 
024 
025 
026 
027 
028 
029 
030 
031 
032 
033 
034 
035 
036 
<?php
// Cargamos el mapa (image.png)
$im imagecreatefrompng("image.png");
// Creamos los colores rojo y verde
$rojo imagecolorallocate($im25500);
$verde imagecolorallocate($im02550);
// Y ahora, por cada plaza:
if(plaza_1_ocupada){
imagefill ( $im$x1$y1$rojo );
}
else{
imagefill ( $im$x1$y1$verde );
}
 
if(
plaza_2_ocupada){
imagefill ( $im$x2$y2$rojo );
}
else{
imagefill ( $im$x2$y2$verde );
}
 
if(
plaza_1_ocupada){
imagefill ( $im$x3$y3$rojo );
}
else{
imagefill ( $im$x3$y3$verde );
}
 
//· · ·
 
// Enviamos el encabezado
header("Content-type: image/png")
// Y después la imagen
imagepng($im)
// Finalmente borramos la imagen
imagedestroy($im)
?>
 
Las variables $x1, $y1, $x2, $y2, $x3 y $y3 son las coordenadas de los rectángulos en blanco 1, 2 y 3.

El ejemplo parte de una imagen en png. Si quieres que la imagen esté en jpeg o gif, habrás de cambiarle algunos métodos y el encabezado.

Si quieres mirarte algo sobre GD mírate estos artículos y si tienes alguna duda vuelve a preguntar.


Image GD, descripción y ejemplos
Creación de una imagen con GD
Uso del color con GD
Dibujo de líneas con GD
Dibujo de rectángulos con GD
Dibujo de arcos y elipses con GD

Cuéntame como te ha ido [;].

PD. Lo siento Juanka, nos hemos topado [s].
Que es mi barco mi tesoro, que es mi dios la libertad,
mi ley, la fuerza y el viento, mi única patria, la mar...
1 votos
Preguntado hace 7 años y 154 dias , editado  hace 7 años y 152 dias por LloX  283 mensajes  
 

Re: mapa dinámico

Para nada Llox, me gusta tu respuesta !! jeje, saludos
Quisiera ser tan alto como la luna...
0 votos
Preguntado hace 7 años y 154 dias por klaufel  159 mensajes  
 

Re: mapa dinámico

La solución con gd usaría más recursos. Creo que podría usarse una imagen de background en una tabla que tenga celdas que coincidan con la ubicación de los autos y luego revisar si la plaza que coincide con x celda está ocupada o no y, en función a eso, ubicar una imagen o pintar la celda.
Panino_5001
0 votos
Preguntado hace 7 años y 153 dias por Panino_5001  973 mensajes  
 

Re: mapa dinámico

Eso sería una posibilidad muy buena si se quisiera tener una visión de cómo está el parking sin necesidad de cargar la página. Se podría hacer un setInterval() y cada x segundos que se haga una petición AJaX y que según como esté el parking se cambie el color de las celdas. Así se podría observar, casi a tiempo real, la situación del parking.

Te paso este artículo de xaJax, por si quieres optar por ésta posibilidad. Tan sólo habrías de declarar una función que retorne una respuesta xaJax que cambie el color background de las celdas (se podría hacer con una simple addAssign("id_celda", "style.background", "red/green").

Bueno, Hummer, que te parece? Cuéntanos como te ha ido.
Que es mi barco mi tesoro, que es mi dios la libertad,
mi ley, la fuerza y el viento, mi única patria, la mar...
0 votos
Preguntado hace 7 años y 153 dias por LloX  283 mensajes  
 

Re: mapa dinámico

Muchas gracias por contestar tan rápido :D

La verdad es que me gusta mucho la solución de LloX, porque sólo necesito que se cargue el mapa al cargar la página, no necesito verlo en tiempo real.

Bueno.. podría hacerlo, pero si me funciona la solución de Llox tengo lo que quería de sobras.

Ya os diré qué tal funciona que hasta esta tarde no podré probarlo jejeje.

Gracias de nuevo!!
0 votos
Preguntado hace 7 años y 153 dias por hummer84  3 mensajes  
 

Re: mapa dinámico

Wenas!!

He probado con PHP y GD...

El codigo me funciona cuando hago pruebas en un archivo aparte que sólo contiene el código que modifica la imagen y la muestra. Pero al juntar ese código con el del resto de la página web me sale este pete de 3 pares de webos (no se porqué se queja de un javascript...):

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\MAC\javascript\HuecosJS.js:1) in C:\AppServ\www\MAC\formularios\huecos\C6_0.php on line 233
‰PNG  &#65533;&#65533;&#65533; IHDR&#65533;&#65533;Œ&#65533;&#65533;/&#65533;&#65533;&#65533;°WÂ&#65533;&#65533; &#65533;IDATxœìÝypœé}øßïyÞ£ïn4€Æ} Þ3$g†sJ3²$KåM2r"¹\«M*›ÊVöŸ¬×dS.WþN¥v«\‰·\µ›¬Ë‰U‰cɶdK3# g¤r†sð>&#65533;7ˆèF_ïñûÇ
RÔèߧÈ*²ñ ûí÷ü¾Ïû¨µB!„B* Ûí „B!ä‹(¤B!„ŠC!•B!„T ©„B!¤âPH%„B!‡B*!„B©8R !„BHÅ¡J!„B*…TB!„Rq(¤B!„ŠC!•B!„T ©„B!¤âPH%„B!‡B*!„B©8R

y un montón más de lineas de carácteres raros...

¿¿Alguien tiene idea de porqué pasa esto??
0 votos
Preguntado hace 7 años y 151 dias por hummer84  3 mensajes  
 

Re: mapa dinámico

Habría que ver bien tu código. En principio, lo que seguramente estás haciendo mal es una de estas cosas: Si estás generando el código de la imagen en la misma página, no tenés que colocar el header("Content-type: image/png") ya que esto genera un error al mezclar 2 tipos de contenido (html y png), y tenés que hacer que el script genere un archivo de imagen aparte (llamémole archivo de destino), colocando el nombre del archivo de destino como segundo parámetro de la instrucción imagepng: imagepng($im,'archivo.png'). Luego, para leer la imagen, tenés que usar código html normal: <img src="archivo.png">.***
Si en cambio tu imagen se genera en un archivo aparte (recomendable), tenés que dejarle el header("Content-type: image/png") y usar la función imagepng con un sólo parámetro, pero para incluirla en el html tenés que usar algo así:<img src="nombredearchivodeimagen.php">.
Lo del error de js, ya te digo, hay que ver tu código para saber. Pero lo recomendable es primero corregir estas cosas.

***En realidad sí podrías, pero es más difícil de explicar y entender: la técnica consiste en colocar, antes de cualquier salida, el código que genera la imagen con un exit al final y envuelto en un condicional, algo así:
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 

<?php
if(isset($_GET['imagen'])){
//aquí el código que genera la imagen,
//con su header("Content-type: image/png");
//incluído
exit;
}
?>
<!-- acá el resto del código html-->
<img src="?imagen">
<!-- acá el resto del código html-->
 
Panino_5001
0 votos
Preguntado hace 7 años y 150 dias , editado  hace 7 años y 150 dias por Panino_5001  973 mensajes  
 
Páginas:  1 
 
Responder
No puedes responder, mensaje cerrado por inactividad