ThinkGeo.com    |     Documentation    |     Premium Support

Virtual Earth Birdseye Imagery

Hi,


I'm trying to show Virtual Earth birdseye imagery, but setting the VirtualEarthMapType property of the Virtual Earth overlay to "Birdseye", "Oblique", or "BirdseyeHybrid" seems to have no effect, and the normal road maps are shown instead. Am I missing something?


Best regards,


Gary



Gary,



Sorry for that, that’s a bug for OpenLayers, and here is a workaround for you temporarily. You need to add the code below to your application if you want to VE with Birdseye, and we will fix this bug in the nex public released product.


    var OnMapCreating = function(map) {
        OpenLayers.Layer.VirtualEarth = OpenLayers.Class(OpenLayers.Layer.VirtualEarth, {
            getMapObjectLonLatFromMapObjectPixel: function(moPixel) {
                var latlon;
                if (typeof VEPixel != 'underfined') {
                    latlon = this.mapObject.PixelToLatLong(moPixel);
                }
                else {
                    latlon = this.mapObject.PixelToLatLong(moPixel.x, moPixel.y);
                }
                return (new _xy1).Decode(latlon);
            }
        });
    }
    function Show() {
        Map1.SetCurrentBackgroundMapType(VEMapStyle.Birdseye);
    }





And another thing is that birds eye view won't show until map has zoomed to some small extent, so at that time, you just need to call the Show function, Map1 is the ID of your map control.
Any more question please let me know.



Thanks,



Khalil