[Users] Base Layer Does Not Display on Initial Load
Andreas Hocevar
ahocevar at opengeo.org
Sat Sep 25 12:58:15 CEST 2010
Hi,
you have to render the MapPanel to somewhere. Either add "renderTo: document.body" to the mapPanel's configuration, or add it to a container. If you do the former, you also have to configure a width and height on the mapPanel.
Regards,
Andreas.
On Sep 24, 2010, at 19:19 , IT Intern wrote:
> Jason,
>
> I am using Google Streets actually :). It just isn't working out for me atm...
>
>
> Andreas,
>
> I tried both suggestions. I got rid of the 'map' parameter in the map instantiation and had the same result, the layer was blank. Then I tried again with using my options variable in my mapPanel and nothing loaded up at all when I did this :(
> My entire page was blank...
>
> Thanks,
>
> elshae
>
> On Fri, Sep 24, 2010 at 10:39 AM, Andreas Hocevar <ahocevar at opengeo.org> wrote:
> Hi,
>
> the problem here is that you configure the OpenLayers map in the wrong mode. See below:
>
> On Sep 23, 2010, at 21:43 , IT Intern wrote:
>
> > Hello GeoExt users,
> >
> > This one's gotten me totally stumped. I have some base layers and a few wms overlays. When my page loads it shows the base layer for a quick second and then goes blank as it loads my overlays. It stays blank until I click the map, etc. Then it displays properly. I've Googled all sorts of things concerning this sort of issue and have come up with nothing that gives me a hint as to why this could be. This never happened to me before until I started using GeoExt to display my map. Is it something in code I must write for GeoExt or OpenLayers so that this doesnt happen? It's driving me crazy!!!
> >
> > Code:
> >
> > //Base Layers
> >
> > var ghyb = new OpenLayers.Layer.Google(
> > "Google Hybrid",
> > {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
> > );
> >
> > var gmap = new OpenLayers.Layer.Google(
> > "Google Streets", // the default
> > {numZoomLevels: 20},{visibility: true}
> > );
> >
> > var osm = new OpenLayers.Layer.OSM();
> >
> > //.....
> > ....
> > ....
> >
> > var options = {
> > controls: [new OpenLayers.Control.Navigation()],
> > maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
> > maxResolution: "auto",
> > projection: new OpenLayers.Projection("EPSG:900913"),
> > units: 'm',
> > allOverlays: false
> > }
> >
> >
> > var map = new OpenLayers.Map('map', options);
>
> Wrong! If at all, use the following instead:
>
> var map = new OpenLayers.Map(options);
>
> You don't want to render the map at this point, so you have to configure it without a map div.
>
>
> > map.addLayers([gmap, ghyb, osm, all_chn, all_tib, chn_bridges, tib_bridges, chn_countys, tib_countys, chn_farms, tib_farms, chn_glaciers, tib_glaciers, chn_grazing, tib_grazing, chn_hwyCrew, tib_hwyCrew, chn_hospitals, tib_hospitals, chn_lakes, tib_lakes, chn_monastaries, tib_monastaries, chn_pass, tib_pass, chn_rivers, tib_rivers, chn_townships, tib_townships, chn_villages, tib_villages]);
> >
> > var mapPanel = new GeoExt.MapPanel({
> > title: "Map",
> > map: map,
>
> Now the preferred way to configure a MapPanel would be to remove the "var map = ..." above entirely, and configure the map here:
>
> map: options,
> layers: [gmap, ghyb, osm, all_chn, all_tib, chn_bridges, tib_bridges, chn_countys, tib_countys, chn_farms, tib_farms, chn_glaciers, tib_glaciers, chn_grazing, tib_grazing, chn_hwyCrew, tib_hwyCrew, chn_hospitals, tib_hospitals, chn_lakes, tib_lakes, chn_monastaries, tib_monastaries, chn_pass, tib_pass, chn_rivers, tib_rivers, chn_townships, tib_townships, chn_villages, tib_villages]
>
> Regards,
> Andreas.
>
> > center: map.setCenter(new OpenLayers.LonLat(93.9, 29.53).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())),
> > zoom: 9,
> > region: "center",
> > bbar: [{
> > xtype: "label",
> > text: "Scale = 1 : "
> > }],
> > items: [{
> > xtype: "gx_zoomslider",
> > vertical: true,
> > height: 300,
> > x: 10,
> > y: 20,
> > plugins: new GeoExt.ZoomSliderTip()
> > }]
> > });
> >
> > var layerRoot = new Ext.tree.TreeNode({
> > text: "All Layers",
> > expanded: true,
> > autoLoad: true
> > });
> >
> > //Is there something to set here???
> > layerRoot.appendChild(new GeoExt.tree.BaseLayerContainer({
> > text: "Base Layers",
> > map: map,
> > layerStore: mapPanel.layers,
> > expanded: true,
> > autoLoad: true
> > }));
> >
> > //.....
> >
> > Thank you very much, I appreciate any suggestions :),
> >
> > elshae
> >
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at geoext.org
> > http://www.geoext.org/cgi-bin/mailman/listinfo/users
>
>
>
> --
> Andreas Hocevar
> OpenGeo - http://opengeo.org/
> Expert service straight from the developers.
>
>
> _______________________________________________
> Users mailing list
> Users at geoext.org
> http://www.geoext.org/cgi-bin/mailman/listinfo/users
--
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.
More information about the Users
mailing list