Hola tengo este codigo que me muestra un mapa y la vista de google street y depende de donde se ponga la marca la vista se actualiza, lo que quiero es saber como obtener 3 cosas, las coordenadas de la marca segun donde este posicionada, y el angulo yaw de la vista de google street actual, esto al presionar un boton, actualmente mi codigo tiene un boton que muestra las coordenadas pero solo del punto central del mapa es decir no de la marca, alguien podria ayudarme??
Code:: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example: Street View Data Example</title>
<script type="text/javascript" src="http://maps.google.com/maps?file=api&&v=2&key=AIzaSyAG4joBMX5NjEDqoC0UJn1gNZf323WoCj8"></script>
<script type="text/javascript">
var map;
var myPano;
var panoClient;
var houseMarker;
function initialize() {
panoClient = new GStreetviewClient();
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(21.165844,-86.843491), 15);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
houseMarker = new GMarker(new GLatLng(21.165844,-86.843491), {draggable: true});
map.addOverlay(houseMarker);
GEvent.addListener(houseMarker, "dragend", function() {
panoClient.getNearestPanorama(houseMarker.getLatLng(), showPanoData);
});
myPano = new GStreetviewPanorama(document.getElementById("pano"));
panoClient.getNearestPanorama(houseMarker.getLatLng(), showPanoData);
}
function showPanoData(panoData) {
if (panoData.code != 200) {
GLog.write('showPanoData: Server rejected with code: ' + panoData.code);
return;
}
var angle = computeAngle(houseMarker.getLatLng(), panoData.location.latlng);
myPano.setLocationAndPOV(panoData.location.latlng, {yaw: angle});
}
function computeAngle(endLatLng, startLatLng) {
var DEGREE_PER_RADIAN = 57.2957795;
var RADIAN_PER_DEGREE = 0.017453;
var dlat = endLatLng.lat() - startLatLng.lat();
var dlng = endLatLng.lng() - startLatLng.lng();
// We multiply dlng with cos(endLat), since the two points are very closeby,
// so we assume their cos values are approximately equal.
var yaw = Math.atan2(dlng * Math.cos(endLatLng.lat() * RADIAN_PER_DEGREE), dlat)
* DEGREE_PER_RADIAN;
return wrapAngle(yaw);
}
function wrapAngle(angle) {
if (angle >= 360) {
angle -= 360;
} else if (angle < 0) {
angle += 360;
}
return angle;
};
function next()
{
var A = map.getCenter();
alert(A);
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 600px; height: 300px"></div>
<div name="pano" id="pano" style="width: 600px; height: 300px"></div>
<input type="button" onclick="next()" value="Next"/>
</body>
</html>
|