HI Jason, I did tweak the coordinate system here and have it working. Look at: http://squamish2010.ca/mapguide2010/contaminants/main_fusion.php
However, I am not sure how to convert such client-side javascript to produce a printable map with the OpenLayers? Any hints? thanks gordon Jason Birch wrote: > > Hi, > > Thanks for pointing out the example. > > I had the same lack of success getting Google Maps to show up by using the > methods outlined on DMSG's research blog. It looked like I had everything > right, but neither map would load. I'd put it on a back burner until I > had more time to play with it. > > On the MGE site, they take a different path. The ApplicationDefinition > only contains the definition of a MapGuide map--which has been set to the > Google Maps (Popular Visualization) and projects the underlying data on > the fly--and InvokeScript widgets that allow switching between streets, > satellites, hybrid. The real magic is in the HTML template. There are > three important things here: > > - The Google Maps js is included at the top of the script > > - The fusionInitialized callback registers addGoogleStuff() to be called > when the map is loaded > > - The addGoogleStuff() callback adds the google streets layer, sets the > MapGuide layer to not be a base layer, turns off fractional zoom, and sets > the google streets layer as the base layer. > > The only really hard part of this (once it's figured out) appears to be > setting the MapDefinition to use the Popular Visualisation projection and > setting the extents. You can grab the CS definition from the $wktGoogle > variable in the attached script, and manually edit your MapDefinition's > XML to use this as the CoordinateSystem. Make sure to convert your " to > " . You can also extract the extents of an existing layer in the > Popular Visualization projection using the attached script; just edit the > first couple lines to point to the location of your WebServerExtensions > directory, and the resource ID of a layer that covers the entire extent of > your area. > > Jason > > ________________________________ > From: girish kumar bv > Sent: Sunday, April 19, 2009 11:08 AM > Subject: [mapguide-users] re: flexible web layouts > > Can anyone provide neccessary steps/procedure to integrate google maps > with mapguide using flexible web layout. I tried through Application > definition.xml but with no success > > There is an example on http://enterprise.mapguide.com/landing/index.php > > <?php > > $featureResource = "Library://ParcelData.FeatureSource"; > > $installDir = 'C:/Program Files/OSGeo/MapGuide Web/'; > > $wktGoogle = 'PROJCS["Popular Visualisation CRS / > Mercator",GEOGCS["Popular Visualisation > CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation > Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]]'; > $wktLL84 = > 'GEOGCS["LL84",DATUM["WGS84",SPHEROID["WGS84",6378137.000,298.25722293]],PRIMEM["Greenwich",0],UNIT["Degree",0.01745329251994]]'; > > function getExtents($geom) > { > > try > { > > $ll = $geom->GetLowerLeftCoordinate(); > $ur = $geom->GetUpperRightCoordinate(); > > return array ( > 'x1' => $ll->GetX(), > 'y1' => $ll->GetY(), > 'x2' => $ur->GetX(), > 'y2' => $ur->GetY() > ); > > } > catch (MgException $e) { > return NULL; > } > > } > > try > { > > require($installDir."/www/mapviewerphp/constants.php"); > > MgInitializeWebTier($installDir."www/webconfig.ini"); > > $agfReaderWriter = new MgAgfReaderWriter(); > $wktReaderWriter = new MgWktReaderWriter(); > > $csFactory = new MgCoordinateSystemFactory(); > > $csGoogle = $csFactory->Create($wktGoogle); > $csLL84 = $csFactory->Create($wktLL84); > > $user = new MgUserInformation("Anonymous", ""); > $siteConnection = new MgSiteConnection(); > $siteConnection->Open($user); > > $featureService = > $siteConnection->CreateService(MgServiceType::FeatureService); > > $resourceID = new MgResourceIdentifier($featureResource); > > $scReader = $featureService->GetSpatialContexts($resourceID,false); > > $scReader->ReadNext(); > > $wktSourceCs = $scReader->GetCoordinateSystemWkt(); > $csSource = $csFactory->Create($wktSourceCs); > > $extentBinary = $scReader->GetExtent(); > > $extentAgfSource = $agfReaderWriter->Read($extentBinary)->Envelope(); > > $extentAgfLL84 = $agfReaderWriter->Read($extentBinary, > $csFactory->GetTransform($csSource,$csLL84))->Envelope(); > > $extentAgfGoogle = $agfReaderWriter->Read($extentBinary, > $csFactory->GetTransform($csSource,$csGoogle))->Envelope(); > > header('Content-type: text/plain'); > > print "Feature Source:\r\n\r\n"; > print $featureResource; > > print "\r\n\r\nSource Coordinates:\r\n\r\n"; > print_r(getExtents($extentAgfSource)); > > print "\r\n\r\nLL84 Coordinates:\r\n\r\n"; > print_r(getExtents($extentAgfLL84)); > > print "\r\n\r\nGoogle Coordinates:\r\n\r\n"; > print_r(getExtents($extentAgfGoogle)); > > } > catch (MgException $e) { > echo "ERROR: " . $e->GetMessage() . "\n"; > echo $e->GetDetails() . "\n"; > echo $e->GetStackTrace() . "\n"; > exit; > } > > ?> > _______________________________________________ > mapguide-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapguide-users > > -- View this message in context: http://n2.nabble.com/re%3A-flexible-web-layouts-tp2660073p3008639.html Sent from the MapGuide Users mailing list archive at Nabble.com. _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users
