|
|
|
JP_Staff
|
Hi All,
I am a newbie to this site, and so far have gained alot of great information. I am running into an issue when loading google maps in my current fusion template. I am currently using MG2010, and using the slate.html template. I am loading all layers dynamically to the map using MaestroAPI.I have followed the implementation of the http://trac.osgeo.org/fusion/wiki/MapGuideCommercialOverlays
for overlaying google imagery into my current map. I have modified my index.html file to include the google javascript file reference and I am currently using the fusion.js file. I have updated my current map definition to include the google reference here is a snippit of my map def
|
||||||||||||||||
|
Zak James-2
|
JP,
Are you sure you have replaced the fusion folder installed by mapguide 2010 with a fresh svn version of fusin trunk? Zak -----Original Message----- From: JP_Staff Sent: 30/09/2009 17:09:56 Subject: [fusion-dev] Error with displaying google imagery Hi All, I am a newbie to this site, and so far have gained alot of great information. I am running into an issue when loading google maps in my current fusion template. I am currently using MG2010, and using the slate.html template. I am loading all layers dynamically to the map using MaestroAPI.I have followed the implementation of the http://trac.osgeo.org/fusion/wiki/MapGuideCommercialOverlays for overlaying google imagery into my current map. I have modified my index.html file to include the google javascript file reference and I am currently using the fusion.js file. I have updated my current map definition to include the google reference here is a snippit of my map def -95.854896545410156 34.845642892061733 10000000 G_HYBRID_MAP MapGuide true false true EPSG:900913 {0} When loading the map I recieve the following javascript error (1) this.mapWidget.oMapOL is null (2)legend.currentRange is null (3)lots of Object reference set to null Then the layers load in the legend, the toolbar is not visible above the map. My layers load on the map, if I pan the map I am able to view the google base map, then it is covered by my other layers. I have found in the Legend.js where the issue is returning null, but I can't seem to locate the error wherethis.mapWidget.oMapOL is null, I am assuming it is in the openlayers.js, any help or guidance is much appreciated. THanks, Jean-Paul -- View this message in context: http://n2.nabble.com/Error-with-displaying-google-imagery-tp3745357p3745357.html Sent from the Fusion Developers mailing list archive at Nabble.com. _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev |
||||||||||||||||
|
Zak James-2
|
In reply to this post
by JP_Staff
JP,
I neglected to mention that you should back up the original folder because you will need to move the slate template from the install inside the svn copy to continue using it. Zak -----Original Message----- From: Zak James Sent: 30/09/2009 18:59:29 Subject: RE: [fusion-dev] Error with displaying google imagery JP, Are you sure you have replaced the fusion folder installed by mapguide 2010 with a fresh svn version of fusin trunk? Zak -----Original Message----- From: JP_Staff Sent: 30/09/2009 17:09:56 Subject: [fusion-dev] Error with displaying google imagery Hi All, I am a newbie to this site, and so far have gained alot of great information. I am running into an issue when loading google maps in my current fusion template. I am currently using MG2010, and using the slate.html template. I am loading all layers dynamically to the map using MaestroAPI.I have followed the implementation of the http://trac.osgeo.org/fusion/wiki/MapGuideCommercialOverlays for overlaying google imagery into my current map. I have modified my index.html file to include the google javascript file reference and I am currently using the fusion.js file. I have updated my current map definition to include the google reference here is a snippit of my map def -95.854896545410156 34.845642892061733 10000000 G_HYBRID_MAP MapGuide true false true EPSG:900913 {0} When loading the map I recieve the following javascript error (1) this.mapWidget.oMapOL is null (2)legend.currentRange is null (3)lots of Object reference set to null Then the layers load in the legend, the toolbar is not visible above the map. My layers load on the map, if I pan the map I am able to view the google base map, then it is covered by my other layers. I have found in the Legend.js where the issue is returning null, but I can't seem to locate the error wherethis.mapWidget.oMapOL is null, I am assuming it is in the openlayers.js, any help or guidance is much appreciated. THanks, Jean-Paul -- View this message in context: http://n2.nabble.com/Error-with-displaying-google-imagery-tp3745357p3745357.html Sent from the Fusion Developers mailing list archive at Nabble.com. _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev |
||||||||||||||||
|
JP_Staff
|
In reply to this post
by Zak James-2
Zak,
Thanks for the quick response. I went ahead and got the latest version from the svn trunk. I copied the files over and used my same config files from original version in the fusion directory. I was able to view the google imagery but no other layers. Toolbar is blacked out along with the legend. Now when I load the application the mapviewer is throwing an exception for the XMLHttpRequest Object is undefined. THis leads me to point toward the json /ajax side of things. If I run the same map from mapguide studio I end up with a configLoadError. I checked and make sure there were no issues with the Mime Types in IIS, but they are configured correctly. Before I revert I was wondering if there is a possible configuration setting in a file(ie. path from mapguideopensource to mapguide2010) I am missing since I am using the Autodesk supported version of fusion and the one I just copied is the MGOS version. THanks Again, Jean-Paul
|
||||
|
Zak James-2
|
JP,
I'm not sure what's wrong but I confess I haven't tried this with IIS. There aren't any path differences that I know of - fusion from svn should be a drop-in replacement under mapguide2010. Are there any other error messages displayed in your javascript console? zak -- Zak James Applications and Software Development DM Solutions Group Inc. http://www.dmsolutions.ca http://research.dmsolutions.ca On 2009-10-01, at 9:29 AM, JP_Staff wrote: > > Zak, > > Thanks for the quick response. I went ahead and got the latest > version from > the svn trunk. I copied the files over and used my same config files > from > original version in the fusion directory. I was able to view the > imagery but no other layers. Toolbar is blacked out along with the > legend. > Now when I load the application the mapviewer is throwing an > exception for > the XMLHttpRequest Object is undefined. THis leads me to point > toward the > json /ajax side of things. If I run the same map from mapguide > studio I end > up with a configLoadError. I checked and make sure there were no > issues with > the Mime Types in IIS, but they are configured correctly. Before I > revert I > was wondering if there is a possible configuration setting in a file > (ie. > path from mapguideopensource to mapguide2010) I am missing since I > am using > the Autodesk supported version of fusion and the one I just copied > is the > MGOS version. > THanks Again, > Jean-Paul > > Zak James-2 wrote: >> >> JP, >> >> Are you sure you have replaced the fusion folder installed by >> mapguide >> 2010 with a fresh svn version of fusin trunk? >> >> Zak >> >> >> -----Original Message----- >> From: JP_Staff >> Sent: 30/09/2009 17:09:56 >> Subject: [fusion-dev] Error with displaying google imagery >> >> >> Hi All, >> >> I am a newbie to this site, and so far have gained alot of great >> information. I am running into an issue when loading google maps in >> my >> current fusion template. I am currently using MG2010, and using the >> slate.html template. I am loading all layers dynamically to the map >> using >> MaestroAPI.I have followed the implementation of the >> http://trac.osgeo.org/fusion/wiki/MapGuideCommercialOverlays >> for overlaying google imagery into my current map. I have modified my >> index.html file to include the google javascript file reference and >> I am >> currently using the fusion.js file. I have updated my current map >> definition >> to include the google reference here is a snippit of my map def >> >> >> >> -95.854896545410156 >> 34.845642892061733 >> 10000000 >> >> >> >> >> G_HYBRID_MAP >> >> >> >> >> >> MapGuide >> true >> >> >> false >> true >> EPSG:900913 >> >> {0} >> >> >> >> >> >> >> >> >> When loading the map I recieve the following javascript error >> (1) this.mapWidget.oMapOL is null >> (2)legend.currentRange is null >> (3)lots of Object reference set to null >> >> Then the layers load in the legend, the toolbar is not visible >> above the >> map. >> >> My layers load on the map, if I pan the map I am able to view the >> base map, then it is covered by my other layers. I have found in the >> Legend.js where the issue is returning null, but I can't seem to >> locate >> the >> error wherethis.mapWidget.oMapOL is null, I am assuming it is in the >> openlayers.js, any help or guidance is much appreciated. >> >> THanks, >> Jean-Paul >> >> -- >> View this message in context: >> http://n2.nabble.com/Error-with-displaying-google-imagery-tp3745357p3745357.html >> Sent from the Fusion Developers mailing list archive at Nabble.com. >> _______________________________________________ >> fusion-dev mailing list >> [hidden email] >> http://lists.osgeo.org/mailman/listinfo/fusion-dev >> >> _______________________________________________ >> fusion-dev mailing list >> [hidden email] >> http://lists.osgeo.org/mailman/listinfo/fusion-dev >> >> > > -- > View this message in context: http://n2.nabble.com/Error-with-displaying-google-imagery-tp3745357p3749026.html > Sent from the Fusion Developers mailing list archive at Nabble.com. > _______________________________________________ > fusion-dev mailing list > [hidden email] > http://lists.osgeo.org/mailman/listinfo/fusion-dev _______________________________________________ fusion-dev mailing list [hidden email] http://lists.osgeo.org/mailman/listinfo/fusion-dev |
||||||||||||||||
|
JP_Staff
|
Zak,
I was able to get the google imagery to display with success thanks to your help. It seems like my map projections weren't getting along with googles. Now my next question is kinda a curve ball. In my past implementations I have been using Weblayouts(not fusion) to display my maps to individuals customers. The process of creating the maps were dynamic so different user have different dataset and different layers. I was able to accomplish this by using the Maestro API and manipulating my weblayout,map,and add layers at runtime. My question is there any clean way to accomplish(besides modifying the xml) this by modifying the application definition dynamically in the Maestro API. In the past I was able to accomplish this using weblayouts by: Uri host = new Uri(ConfigurationSettings.AppSettings["MgFCGI_Path"].ToString()); HttpServerConnection conn = new HttpServerConnection(host, SessionID, "en", true); WebLayout webLayout = conn.GetWebLayout(LayoutResourceID.ToString()); MapDefinition mapdef = conn.GetMapDefinition(MapResourceID.ToString()); //add layers to map foreach (MapLayerType layer in LayersToAdd) { layer.Visible = true; layer.ExpandInLegend = true; mapdef.Layers.Add(layer); //mapdef.BackGroundColorAsHTML = "dbeaff"; } //add our layer group collection to map definition //create base map definition MapDefinitionTypeBaseMapDefinition baseDef = new MapDefinitionTypeBaseMapDefinition(); baseDef.BaseMapLayerGroup = BaseGroupCollection; mapdef.BaseMapDefinition = baseDef; baseDef.FiniteDisplayScale = new DoubleCollection(); baseDef.FiniteDisplayScale.Add(0); baseDef.FiniteDisplayScale.Add(10000); baseDef.FiniteDisplayScale.Add(100000); baseDef.FiniteDisplayScale.Add(250000); baseDef.FiniteDisplayScale.Add(600000); baseDef.FiniteDisplayScale.Add(1000000); baseDef.FiniteDisplayScale.Add(1500000); baseDef.FiniteDisplayScale.Add(2000000); baseDef.FiniteDisplayScale.Add(2500000); baseDef.FiniteDisplayScale.Add(3000000); baseDef.FiniteDisplayScale.Add(4000000); baseDef.FiniteDisplayScale.Add(6000000); baseDef.FiniteDisplayScale.Add(10000000); //Save the modified map at its new temporary location conn.SaveResource(mapdef);// , tempMapDef); //Generate a temporary WebLayout id string tempWebLayout = new ResourceIdentifier("MyLayout", ResourceTypes.WebLayout, conn.SessionID); //Update the WebLayout to point at the modified MapDefinition webLayout.Map.ResourceId = mapdef.ResourceId; //Save the modified layout at its new temporary location conn.SaveResource(webLayout); WebLayoutString = webLayout.ResourceId.ToString(); --------------------------------------------------------------------------------- -------------------------------------------------------------------------------- currently I am trying the following for application definiton //get the application definition ApplicationDefinitionType app_Type = conn.GetApplicationDefinition(FlexibleLayoutResourceID.ToString()); //iterate through the map groups find the reourceid of the map and set it to the modified with layers MapGroupTypeCollection map_Coll = app_Type.MapSet; foreach (MapGroupType mg_Type in map_Coll) { MapTypeCollection mcollection = mg_Type.Map; foreach (OSGeo.MapGuide.MaestroAPI.ApplicationDefinition.MapType m_type in mcollection) { CustomContentType c_Type = m_type.Extension; System.Xml.XmlElement[] elements = c_Type.Any; //here is where i would set the new map resource id to pointot the generated map with layers } } //Save the modified map at its new temporary location conn.SaveResource(mapdef); //Generate a temporary application definition id string tempWebLayout = new ResourceIdentifier("MyApplication", ResourceTypes.ApplicationDefinition, conn.SessionID); //Save the modified layout at its new temporary location conn.SaveResourceAs(app_Type,app_Type.ResourceId.ToString()); Thanks, JPS
|
||||||||||||||||
|
JP_Staff
|
Zak,
thanks for all your help, I was able to get it working, looks like I had some issues with the current projections and I ended up loading the map via javascript and not through the application definition.
|
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |