[mapguide-users] Mapguide maps using openlayers

Rodolfo Moreno rmoreno at voxiva.com
Tue Nov 18 10:26:10 EST 2008


Hi Kenneth,
Here is the javascript code. It's similar to the posted in the wiki
(http://trac.osgeo.org/mapguide/attachment/wiki/CodeSamples/JavaScript/OpenlayersExample/sheboygan.php)

<script type="text/javascript">

        var map, map2, layer;
        //var url =
"http://demo01.dmsolutions.ca/mapguide/mapagent/mapagent.fcgi";
        //you can use this URL when MapGuide OS is installed locally
		var url = "http://localhost/mapguide/mapagent/mapagent.fcgi";

        var metersPerUnit = 111319.4908;  //value returned from mapguide
        var inPerUnit = OpenLayers.INCHES_PER_UNIT.m * metersPerUnit;
        OpenLayers.INCHES_PER_UNIT["dd"] = inPerUnit;
        OpenLayers.INCHES_PER_UNIT["degrees"] = inPerUnit;
        OpenLayers.DOTS_PER_INCH = 96;


        function init(){

     	var mapBounds = new
OpenLayers.Bounds(-87.764986990963,43.691398128788,-87.6955215109,43.79752000048);
	var fixedScales
=[1000,1930.6977300000001,3727.5937199999998,7196.8567300000004,13894.95494,26826.95795,51794.746789999997,100000];

            var mapOptions = {
                maxExtent: mapBounds,
                scales: fixedScales
            };
			
            map = new OpenLayers.Map( 'map', mapOptions );			
			
	        //tiled map
          var tiledParams = {
              mapdefinition:
'Library://Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition',
              basemaplayergroupname: "Base Layer Group",
	 session: '<%=sessionId%>'
           }

          var tiledOptions = {
              units: "dd",
              singleTile: false
            }
			
          var tiledLayer = new OpenLayers.Layer.MapGuide( "GetTileImage", 
				url, 
				tiledParams, 
				tiledOptions );
          map.addLayer(tiledLayer);
			
         //un-tiled versions

         var dynamicOverlayOptions = {
              buffer: 1,
              singleTile: true,
	  isBaseLayer : false,
	  visibility : false
         };

         var mapImageOptions = {
              buffer: 1,
              singleTile: true,
	 isBaseLayer : true
         };

        var untiledParams = {
	session: '<%=sessionId%>',
             mapname: 'Sheboygan'
        };

        var dynamicLayer = new OpenLayers.Layer.MapGuide(
"GetDynamicMapOverlayImage", 
	url, 
	untiledParams, 
	dynamicOverlayOptions );
        map.addLayer(dynamicLayer);
			
        var mapImageLayer = new OpenLayers.Layer.MapGuide( "GetMapImage", 
	url, 
	untiledParams, 
	mapImageOptions );
        map.addLayer(mapImageLayer);

        map.zoomToMaxExtent();

        map.addControl(new OpenLayers.Control.MousePosition());
        map.addControl(new OpenLayers.Control.Scale());
			
        var switcher=new OpenLayers.Control.LayerSwitcher();
        map.addControl(switcher);
        switcher.maximizeControl();

        }
    </script>

The sessionId is returned as parameter to openlayers and the mapname is
hard-coded as 'Sheboygan'
only for the untiled version layer.

Also I have tested it with FF and firebug, I have gotten the same result
(see the image attached).

Regards,


Kenneth Skovhede, GEOGRAF A/S wrote:
> 
> How do you return the map name and sessionId to OpenLayers?
> 
> If you use Firebug (in Firefox), the "Net" tab will show you any errors 
> thrown by MapGuide.
> http://getfirebug.com/
> 
> Regards, Kenneth Skovhede, GEOGRAF A/S
> 
> 
> 
> Rodolfo Moreno skrev:
>> Hi all,
>> I have tried to port the wiki sample "display mapguide maps using
>> openlayers" from PHP to .NET without successful.
>>
>> The javascript code is the same of the example, the difference is the
>> SERVER
>> CODE. It's my .NET CODE:
>>
>> public partial class OLViewer : System.Web.UI.Page
>> {
>>     public String sessionId;
>>     protected void Page_Load(object sender, EventArgs e)
>>     {
>>         try
>>         {
>>             // Initialize the web tier
>>             Utility utility = new Utility(Request);
>>             utility.InitializeWebTier();
>>
>>             MgUserInformation userInfo = new
>> MgUserInformation("Anonymous",
>> "");
>>
>>             MgSiteConnection siteCnn = new MgSiteConnection();
>>             siteCnn.Open(userInfo);
>>
>>             MgSite site = siteCnn.GetSite();
>>             sessionId = site.CreateSession();
>>
>>             userInfo.SetMgSessionId(sessionId);
>>
>>             MgResourceService resourceService =
>> (MgResourceService)siteCnn.CreateService(MgServiceType.ResourceService);
>>             MgMappingService mappingService =
>> (MgMappingService)siteCnn.CreateService(MgServiceType.MappingService);
>>
>>             MgResourceIdentifier resId = new
>> MgResourceIdentifier("Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition");
>>
>>             MgMap map = new MgMap();
>>             map.Create(resourceService, resId, "Sheboygan");
>>
>>             MgSelection sel = new MgSelection(map);
>>             sel.Save(resourceService, "Sheboygan");
>>
>>             MgResourceIdentifier mapStateId = new
>> MgResourceIdentifier("Session:" + sessionId + "//" + "Sheboygan." +
>> MgResourceType.Map);
>>             map.Save(resourceService, mapStateId);
>>
>>         }
>>         catch (Exception er)
>>         {
>>             Response.Write(er.Message);
>>         }
>>     }
>> }
>>
>> when I run the sample the Page is shown but not the map. (see attached
>> image).
>> http://n2.nabble.com/file/n1511002/MGusingOL.jpg 
>>
>> I don't know what is the error.
>> I'd appreciate so much your suggestions.
>>
>>
>> -----
>> Rodolfo Moreno
>> CivilEng
>>
>>   
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
> 
> 
http://n2.nabble.com/file/n1514643/FirebugTest.jpg 

-----
Rodolfo Moreno
CivilEng

-- 
View this message in context: http://n2.nabble.com/Mapguide-maps-using-openlayers-tp1511002p1514643.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list