Hi Marc,

Thanks for your reply!

Unfortunately, your example doesn't fix the problem I'm having. I'll
do my best to explain. I have a location I want to view. So, what I do
is request a panorama for that location. Nine times out of ten the
panorama returned is not actually for that location, it's somewhere
nearby. A good example is I have a location of a house and when I
request a panorama for the house's location it returns the panorama
for a location in the street which is obviously a few metres away from
the original requested location.

The problem I have then is that I want to find out what the _actual_
location of the panorama returned is rather than the one I requested.
That way then I can orient the view (using similar code to what you
showed) towards the point of interest.

I hope that makes it a little clearer.

All the best,
Matthew

On May 27, 5:14 pm, Marc Ridey <[email protected]> wrote:
> Try this. Drag the pegman on the map and the streetview panorama will
> point towards the marker on open. Drag the marker and the streetview
> panorama will follow.
>
> <html>
>   <head>
>     <script type="text/javascript"
> src="http://maps.google.com/maps/api/js?sensor=false";></script>
>     <script>
>       function initialize() {
>         var opts = {
>           center: new google.maps.LatLng(48.8589, 2.2958),
>           zoom: 14,
>           mapTypeId: google.maps.MapTypeId.ROADMAP,
>           streetViewControl: true
>         };
>
>         var map = new google.maps.Map(document.getElementById('map'), opts);
>         var panorama = new
> google.maps.StreetViewPanorama(document.getElementById('streetview'));
>         map.setStreetView(panorama);
>
>         var marker = new google.maps.Marker({
>           position: opts.center,
>           draggable: true
>         });
>         marker.setMap(map);
>
>         function refreshPanoPov() {
>           var markerPos = marker.getPosition();
>           var panoPos = panorama.getPosition();
>           if (markerPos && panoPos) {
>             var markerPosLat = markerPos.lat() / 180 * Math.PI;
>             var markerPosLng = markerPos.lng() / 180 * Math.PI;
>             var panoPosLat = panoPos.lat() / 180 * Math.PI;
>             var panoPosLng = panoPos.lng() / 180 * Math.PI;
>
>             var y = Math.sin(markerPosLng - panoPosLng) *
> Math.cos(markerPosLat);
>             var x = Math.cos(panoPosLat)*Math.sin(markerPosLat) -
>
> Math.sin(panoPosLat)*Math.cos(markerPosLat)*Math.cos(markerPosLng -
> panoPosLng);
>             var brng = Math.atan2(y, x) / Math.PI * 180;
>
>             var pov = panorama.getPov();
>             pov.heading = brng;
>             panorama.setPov(pov);
>           }
>         }
>
>         google.maps.event.addListener(marker, 'position_changed',
> refreshPanoPov);
>         google.maps.event.addListener(panorama, 'position_changed',
> refreshPanoPov);
>       }
>     </script>
>   </head>
>   <body style="margin:0; padding:0" onload="initialize()">
>     <div id="map" style="width: 400px; height: 400px;"></div>
>     <div id="streetview" style="position:absolute; left:410px; top:
> 0px; width: 400px; height: 400px;"></div>
>   </body>
> </html>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to