Mostrar/Ocultar

 Ayuda con codigo para insertar un mapa en una web 🗺️ Foros de Google Earth y Maps 🗺️


Foro de Programación de Google Earth y Maps Foro de Programación de Google Earth y Maps: Programación con las APIs de Google: Google Earth, Google Maps, KML, Aplicaciones Moviles
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
Página 1 de 1 - Tema con 7 Mensajes y 10313 Lecturas
Último Mensaje:
Autor Mensaje

Ofrou
Usuario Reciente

Usuario Reciente
Registrado:
24-03-2011
Mensajes: 3

Votos: 0 👍
Responder citando
Hola, me gustaria recibir ayuda para insertar un mapa en una web. Tengo un codigo que funciona perfectamente para una instalación de wordpress pero muestra el plano en forma de mapa. Lo que yo quisiera es que se viera con streetview. Se agradeceria que me ayudasen. El codigo es este:
Quote::
<?php
// ====== Google Map Single page======
Class googlemmap_singlepage extends WP_Widget {
function googlemmap_singlepage() {
//Constructor
$widget_ops = array('classname' => 'widget Google Map in Detail page Sidebar', 'description' => __('Google Map in Detail page Sidebar. It will show you google map V3 for detail page only.') );
$this->WP_Widget('googlemmapwidget_single', __('PT &rarr; Google Map V3 - Detail page'), $widget_ops);
}
function widget($args, $instance) {
// prints the widget
extract($args, EXTR_SKIP);
$title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
$advt1 = empty($instance['advt1']) ? '' : apply_filters('widget_advt1', $instance['advt1']);
$link1 = empty($instance['link1']) ? '' : apply_filters('widget_link1', $instance['link1']);
?>

<div class="sidebar_map clearfix">
<?php
Global $post,$wp_query;
$post = $wp_query->post;
If(is_single()){
If(get_post_meta($post->ID,'address',true))
{
$address = get_post_meta($post->ID,'address',true);
}else
{
$address = get_post_meta($post->ID,'geo_address',true);
}
$address_latitude = get_post_meta($post->ID,'geo_latitude',true);
$address_longitude = get_post_meta($post->ID,'geo_longitude',true);
$map_type = get_post_meta($post->ID,'map_view',true);
If($map_type=='G_NORMAL_MAP')
{
$map_type='ROADMAP';
}elseif($map_type=='G_SATELLITE_MAP')
{
$map_type='SATELLITE';
}elseif($map_type=='G_HYBRID_MAP')
{
$map_type='TERRAIN';
}
$scale = 14;
If( $post->post_type=='post')
{
$cagInfo = wp_get_object_terms($post->ID,'category',$args);
}else
{
$cagInfo = wp_get_object_terms($post->ID,'eventcategory',$args);
}

$cat_icon = $cagInfo[count($cagInfo)-1]->term_icon;
If($cat_icon=='')
{
$cat_icon = '';
}
$prdimage = bdw_get_images($post->ID,'thumb',1);

$srch_arr = array("'",'"','\\');
$rpl_arr = array('','','');
$contact = trim(str_replace($srch_arr,$rpl_arr,get_post_meta($post->ID,'contact',true)));
$post_title = trim(str_replace($srch_arr,$rpl_arr,get_the_title($post->ID)));
$address = trim(str_replace($srch_arr,$rpl_arr,$address));

$tooltip_message = '';
$tooltip_message = '<img src="'.$prdimage[0].'" width=90 height=70 style="float:left; margin:0 11px 22px 0;" />';
$tooltip_message .= '<a href="'.get_permalink($post->ID).'" class=ptitle>'.$post_title.'</a>';
If($address){
$tooltip_message .= '<br/><span class=pcontact>'.$address.'</span>';
}
If($contact){
$tooltip_message .= '<br/><span class=pcontact>'.wordwrap($contact,40,'<br/>\n').'</span>';
}
If($address_longitude && $address_latitude)
{
?>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
Function initialize() {
var mapDiv = document.getElementById('map-canvas');
var latLng = new google.maps.LatLng(<?php echo $address_latitude;?>, <?php echo $address_longitude;?>);
var map = new google.maps.Map(mapDiv, {
center: latLng,
zoom: <?php echo $scale;?>,
<?php if($map_type=='ROADMAP' || $map_type=='SATELLITE'|| $map_type=='TERRAIN'){?>
mapTypeId: google.maps.MapTypeId.<?php echo $map_type;?>,
<?php }else{?>
mapTypeId: google.maps.MapTypeId.ROADMAP,
<?php }?>
});

var image = '<?php echo $cat_icon;?>';
var myLatLng = new google.maps.LatLng(<?php echo $address_latitude;?>, <?php echo $address_longitude;?>);
var Marker = new google.maps.Marker({
position: latLng,
map: map,
icon: image
});

var content = '<?php echo $tooltip_message;?>';
infowindow = new google.maps.InfoWindow({
content: content
});
infowindow.open(map, Marker);
}
Google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map-canvas" style="width:294px; height:370px"></div>
<span style="font:bold 12px Arial, Helvetica, sans-serif; font-weight:bold; float:left; display:block; padding:8px; "><a href="http://maps.google.com/maps?f=d&dirflg=d&saddr=<?php echo $address;?>" target="_blank"><?php _e('Obtener direcciones en el mapa &raquo;');?></a></span>
<?php
}
}
?>
</div>
<?php
}
function update($new_instance, $old_instance) {
//save the widget
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['advt1'] = ($new_instance['advt1']);
$instance['link1'] = ($new_instance['link1']);

return $instance;
}
function form($instance) {
//widgetform in backend
$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'advt1' => '', 'link1' => '') );
$title = strip_tags($instance['title']);
$advt1 = ($instance['advt1']);
$link1 = ($instance['link1']);
}}
Register_widget('googlemmap_singlepage');
?>
Ir arriba Ofrou Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Buenas ofrou:

Lo que quieres es: ¿disponer en tu mapa de la funcionalidad de street view?, ¿un contenedor aparte y referenciado al principal del mapa que te muestre la vista de street view?, ¿quieres prescindir del mapa tradicional y solo tener la vista en streetview?.

Mientras me concretas esto te voy contando:

-La clase StreetViewPanorama se instancia con:
var 'variable'= new google.maps.StreetViewPanorama('contenedor','array con opciones');

La documentación:
code.google.com/ ...ewPanorama

-El método setStreetView('clase StreetViewPanorama instanciada') te permite referenciar la vista street view de un contenedor a la georreferenciación de otro contenedor principal.

Creo que con esto deberías poder tirar. En todo caso, si nos concretas un poco mas lo que pretendes hacer que seguro que te podemos ayudar mejor.

Un saludo.
Ir arriba _polifemo Compartir:

Ofrou
Usuario Reciente

Usuario Reciente
Registrado:
24-03-2011
Mensajes: 3

Votos: 0 👍
Responder citando
Gracias por responder _polifemo

Con el codigo que tengo lo que me muestra es el mapa con el monigote naranja para poder lanzarlo a la calle en cuestión, pero a mi me gustaría que se viera la vista de la calle y no la situación en el plano. He estado mirando los ejemplos de codigo que vienen en: code.google.com/ ...vices.html

He tratado de cambiar codigo poniendo:
Quote::
$map_type = get_post_meta($post->ID,'GStreetviewPanorama',true);

Y haciendo algún cambio mas como indica en ese documento de google codex pero no logro, o bien se sigue viendo el plano, o bien aparece el espacio del plano en la mi web pero sin contenido ninguno del plano... Algo me falla, y eso se debe a que no tengo suficientes conocimientos de programación, por no decir ninguno.

Pero a mi lo que me gustaría es ver la panoramica o vista de la calle del lugar que quiero mostrar.

Os doy la gracias a todos por vuestra ayuda y en especial a ti, _polifemo
, por tu pronta respuesta
Ir arriba Ofrou Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Bueno, pues para no tener conocimientos de programación ya llevas un buen curro. Enhorabuena.

Cosa importantísima... El link que me has mandado es del APIv2, ¿tu estás trabajando con la v2 o con la v3?.

Te lo digo por que no te lleves sorpresas futuras, y por si aún estás a tiempo de cambiar de versión.

En php voy bastante flojo: ¿que hace get_post_meta?

Mejor consulta estos ejemplos: code.google.com/ ...index.html

Son abundantes, bastante simples de entender y creo que te serán de ayuda. Este en particular creo que se adapta a lo que quieres:

code.google.com/ ...vents.html

Te recomiendo que crees funciones de javascript para hacer llamadas.
Ir arriba _polifemo Compartir:

Ofrou
Usuario Reciente

Usuario Reciente
Registrado:
24-03-2011
Mensajes: 3

Votos: 0 👍
Responder citando
Hola de nuevo,

Que va, yo no controlo nada, eso no lo hice yo, es para wp y lo he encontrado y me funciona bien en mi web (aun en modo de pruebas) Pero yo por las tripas del codigo no se meterme mucho.

El caso es que al escribir una direccion en el post, la muestra automaticamente en el mapa. De ahí debe de salir el get_post_meta, que sera alguna informacion a mayores que aparece en un bocadillo en el mapa, con una imgen del sitio, dirección y telefono.

Usa la V3 de google maps. Me imagino que habra que hacer algun cambio para que en vez de mostrar el plano muestre la panoramica de la calle. Trate de hacerlo aumentando el zoom, pero no ocurre igual que al abrir el plano desde google maps, aquí llega un momento que el zoom no da mas y por mas que aumentes lo unico que se ve es la situación en el plano lo mas cerca posible, pero no lanza el monigote naranja por defecto...

Igual es muy complicado y te estoy haciendo perder mucho tiempo. De cualquier forma muchisimas gracias por dedicarme tu tiempo!
Ir arriba Ofrou Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
No hombre, demasiado complicado no debe ser... A ver si estos próximos días encuentro un hueco y puedo echarte un cable.
Ir arriba _polifemo Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Buenas ofrou, la clave estaría en sustituir la siguiente estructura
Code::
Var map = new google.maps.Map(mapDiv, {
   center: latLng, zoom: <?php echo $scale;?>,<?php if($map_type=='ROADMAP' || $map_type=='SATELLITE'||$map_type=='TERRAIN'){?>mapTypeId:google.maps.MapTypeId.<?php echo $map_type;?>,<?php}else{?>mapTypeId: google.maps.MapTypeId.ROADMAP,<?php }?>
});

Por una estructura como esta:

Code::
Var panoramaOptions = {
      position: fenway,
      pov: {
        heading: 34,
        pitch: 10,
        zoom: 1
}
Var map= new google.maps.StreetViewPanorama(document.getElementById("map-canvas"),panoramaOptions);

Haz una prueba así a ver que sale.

Pero, te recomiendo que si tus conocimientos de programación son flojos tomes mejor como referencia los ejemplos que te indiqué en el anterior post. Tendrás menos problemas por ser mas fáciles (no tienen transferencia de variables con métodos GET, POST, que pueden resultar problemáticos).

Decidas lo que decidas, haz la prueba y no tengas problemas en reportarnos dudas, errores y lo que necesites.
Ir arriba _polifemo Compartir:
Mostrar mensajes de anteriores:   
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
 Responder al tema   Versión Imprimible
Todas las horas son GMT + 1 Hora
Página 1 de 1 - Tema con 7 Mensajes y 10313 Lecturas - Última modificación: 28/03/2011




RSS: Foro Programación de Google Earth y Maps RSS - Ultimos Mensajes
Cambiar a:  


Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
No Puedes adjuntar archivos en este foro
Tu puedes descargar archivos en este foro



Mostrar/Ocultar Últimas Fotos del Foro