Para orientar el mapa para mostrar todos los eventos que quieres primero en PHP has algo que recorra todos los elementos de manera de obtener los 4 valores máximos (margen izquierdo, , derecho, superior e inferior, puedes hacer algo como esto:
Código PHP:
$map_lft=0; //margen izq
$map_top=0; //margen superior
$map_rgt=0; //margen derecho
$map_btn=0; // margen inferior
//en el while de tu consulta recorres todas las longitudes y latitudes:
while(){
//si no se ha definido el márgen aún lo creas
if(!$map_lft) $map_lft=$MFRcnf['Longitude'];
//si ya está definido revisas si es inferior al del ciclo anterior:
elseif($MFRcnf['Longitude']<$map_lft) $map_lft=$MFRcnf['Longitude'];
//haces lo mismo con los otros 4 lados
if(!$map_top) $map_top=$MFRcnf['Latitude'];
elseif($MFRcnf['Latitude']>$map_top) $map_top=$MFRcnf['Latitude'];
if(!$map_rgt) $map_rgt=$MFRcnf['Longitude'];
elseif($MFRcnf['Longitude']>$map_rgt) $map_rgt=$MFRcnf['Longitude'];
if(!$map_btn) $map_btn=$MFRcnf['Latitude'];
elseif($MFRcnf['Latitude']<$map_btn) $map_btn=$MFRcnf['Latitude'];
}
luego aplicas la instruccion bounds que la API de google nos facilita para estos casos indicando los 4 lados:
Código Javascript
:
Ver originalvar bounds = new google.maps.LatLngBounds(new google.maps.LatLng(<?php echo $map_top ?>,<?php echo $map_lft ?>),new google.maps.LatLng(<?php echo $map_btn ?>,<?php echo $map_rgt ?>));
map.fitBounds(bounds);
----------------------------------------------------
Para crear un polyline al hacer contacto con el mapa puedes hacer algo como esto:
Código Javascript
:
Ver original//primero creas un elemento poligono con el nombre polyshape
var PolyShape = new google.maps.Polygon({
strokeColor: "#FFF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FFF",
fillOpacity: 0.35
});
// creas un listener al mapa para saber cuando el usuario hace clic
google.maps.event.addListener(map, 'click', function(event) {
//esto guarda la coordenada en event.latLng
//ahora creas el poligono en esa coordenada:
var polyCords = new Array();
polyCords[polyCords.length]=new google.maps.LatLng(event.latLng.lat()+0.001,event.latLng.lng());
polyCords[polyCords.length]=new google.maps.LatLng(event.latLng.lat(),event.latLng.lng()+0.001);
polyCords[polyCords.length]=new google.maps.LatLng(event.latLng.lat()-0.001,event.latLng.lng());
polyCords[polyCords.length]=new google.maps.LatLng(event.latLng.lat(),event.latLng.lng()-0.001);
//le das las coordenadas que he inventado en base al clic
PolyShape.setPath(polyCords);
//lo ubicas en el mapa
PolyShape.setMap(map);
});
creo que no me he olvidado de nada, no lo he probado, pero por ahi va