[mapguide-users] flexible web layouts
Warren Medernach
wmedernach at rand.com
Sun Aug 9 15:50:35 EDT 2009
Great looking site Gordon.
Interesting to see the APEX integration!
Warren M
-----Original Message-----
From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of GordonL
Sent: Wednesday, August 05, 2009 11:53 AM
To: mapguide-users at lists.osgeo.org
Subject: RE: re: [mapguide-users] flexible web layouts
Just to follow up. I managed to do it: check out:
http://squamish2010.ca/CONTAMINANTS/
I had to add 3 new links - Satellite, Hybrid and Streets:
How I managed to print:
1. When the page opens it grabs the session map name and gets the
extents.
2. I set up a very basic OpenLayers map with the "controls: [new
OpenLayers.Control.KeyboardDefaults()]"
3. I use OpenLayers to add the google layer
3. I use OpenLayers to add the MapGuide layer
4. Onload I trigger a print()
that's it.
It's fun using the OpenLayers map as a print for MapGuide...
gordon
GordonL wrote:
>
> 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],AUTHO
RITY["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],PARAME
TER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3
785"],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-tp2660073p3393801.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
_______________________________________________
mapguide-users mailing list
mapguide-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users
More information about the mapguide-users
mailing list