ThinkGeo.com    |     Documentation    |     Premium Support

Set CurrentExtent based on zoom level and center point

Hello,


I am trying to open the map centered at some point with a given zoom level. In my server code I have this:



var googleZoomLevels = new GoogleMapsZoomLevelSet();
var centerPoint = new PointShape(-3000000, 6000000);
ZoomTo(centerPoint, googleZoomLevels.ZoomLevel04.Scale);



However, with this I get the following javascript error:




Uncaught TypeError: Cannot read property 'left' of undefined helper_GeoResource.axd:66
ConvertJsonToBounds helper_GeoResource.axd:66
Class.Extent.initExtent parser_GeoResource.axd:397
Class.Extent.createMap parser_GeoResource.axd:993
CreateAllMaps helper_GeoResource.axd:289
(anonymous function)


I think this is because CurrentExtent is not set.


My question is, how can I calculate the CurrentExtent from my center point and current zoom level? Or some other way to achieve this.


Thank you,


Sindre


 



Hi Sindre,


I modified the UseGoogleMap sample a little, and it could work with your code, please get it and have a try.


Controller



            Map map = new Map("Map1",
                new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage),
                new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage));

            map.MapUnit = GeographyUnit.Meter;
            map.CustomOverlays.Add(new GoogleOverlay());
            var googleZoomLevels = new GoogleMapsZoomLevelSet();
            var centerPoint = new PointShape(-3000000, 6000000);
            map.ZoomTo(centerPoint, googleZoomLevels.ZoomLevel10.Scale);

            return View(map);

View





    
       @{Html.ThinkGeo().Map(Model).Render();}
    


Regards,


Edgar