[mapguide-users] flexible web layouts
GordonL
gordon.luckett at arrowgeomatics.com
Mon Jun 1 17:09:56 EDT 2009
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
> mapguide-users at lists.osgeo.org
> 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.
More information about the mapguide-users
mailing list