[mapguide-users] Adding a temporary Layer in MapGuide
Carmelo Saffioti
csaffi at libero.it
Thu Jan 22 10:14:29 EST 2009
I solved the problem creating a static layer using MapGuide Studio, which
feature source reads data from a temporary MySql table. Everytime I need to
"filter" these data, before using the layer I modify/update data on the
temporary table...
Now I'd like to show a tooltip when the cursor is on the displayed point.
The tooltip works when I move the cursor on POLYGONS, but it is not working
on POINTS. How can I do?
Thank you again
Cheers
Carmelo
----- Original Message -----
From: "Kenneth Skovhede, GEOGRAF A/S" <ks at geograf.dk>
To: "MapGuide Users Mail List" <mapguide-users at lists.osgeo.org>
Sent: Thursday, January 22, 2009 11:14 AM
Subject: Re: [mapguide-users] Adding a temporary Layer in MapGuide
> It would be the same basic approach, but you need to run through the
> records like:
>
> recordset = query_database(sql_filter)
> while(not recordset.eof)
> {
> AddFeatureToCollection(....)
> }
>
> Regards, Kenneth Skovhede, GEOGRAF A/S
>
>
>
> Carmelo Saffioti skrev:
>> The buffer example doesn't read data from database, isn't it? I need to
>> read data from a MySql database and, after executing a SQL query, display
>> them on the map.
>> How can I do that? Is there any example code about that?
>>
>>
>> Thank you very much again
>> Cheers
>> Carmelo
>>
>> ----- Original Message ----- From: "Kenneth Skovhede, GEOGRAF A/S"
>> <ks at geograf.dk>
>> To: "MapGuide Users Mail List" <mapguide-users at lists.osgeo.org>
>> Sent: Wednesday, January 21, 2009 11:24 AM
>> Subject: Re: [mapguide-users] Adding a temporary Layer in MapGuide
>>
>>
>>> Yes, just insert points instead of the buffer feature.
>>>
>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>
>>>
>>>
>>> Carmelo Saffioti skrev:
>>>> Thank you for your reply Kenneth.
>>>> Trying examples on DevGuideSamples I discovered how to work with the
>>>> Task Pane...
>>>>
>>>> Now I need to draw dynamically on the map points of known x,y
>>>> coordinates, after clicking on the appropriate Task item. I hope this
>>>> can be done with the buffer script you suggested me. Isn't it?
>>>>
>>>>
>>>> Cheers
>>>> Carmelo
>>>>
>>>>
>>>> ----- Original Message ----- From: "Kenneth Skovhede, GEOGRAF A/S"
>>>> <ks at geograf.dk>
>>>> To: "MapGuide Users Mail List" <mapguide-users at lists.osgeo.org>
>>>> Sent: Wednesday, January 21, 2009 9:04 AM
>>>> Subject: Re: [mapguide-users] Adding a temporary Layer in MapGuide
>>>>
>>>>
>>>>> I have not used the AJAX viewer enough to know how to do this with
>>>>> tasks.
>>>>> The values can be read from the viewer through some property
>>>>> functions:
>>>>>
>>>>> http://mapguide.osgeo.org/files/mapguide/docs/2.0/viewerapi.html#mapframe_getsessionid
>>>>> http://mapguide.osgeo.org/files/mapguide/docs/2.0/viewerapi.html#mapframe_getmapname
>>>>>
>>>>> With those, you can manually pass them to the request, if you use the
>>>>> "InvokeScript" method,
>>>>> but there may be an easier way.
>>>>>
>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>
>>>>>
>>>>>
>>>>> Carmelo Saffioti skrev:
>>>>>> Thank you for your help!
>>>>>> I'm seeing that the code you posted is very similar to the buffer
>>>>>> code, however I'm really new to MapGuide, so I hope you can help me
>>>>>> understanding how to make it work.
>>>>>>
>>>>>> I created a Layout, using MapGuide Studio, on which I added a new
>>>>>> custom command for the Task panel, named "Route tracing". Therefore I
>>>>>> created the route_tracing.jsp file, on which I'm trying to use your
>>>>>> code (translating it from PHP to JSP) or the buffer.jsp code (which
>>>>>> is already in JSP).
>>>>>>
>>>>>> On both your code and buffer.jsp there is this code:
>>>>>> mapName = GetParameter(request, "MAPNAME");
>>>>>> sessionId = GetParameter(request, "SESSION");
>>>>>>
>>>>>> - The question is: how can I pass the MAPNAME and SESSION values to
>>>>>> the web page?
>>>>>>
>>>>>> The final result should be a web page, which opens when its Action
>>>>>> Task item is clicked, on which I can select and digit some options.
>>>>>> After clicking a button the page should get these values, and display
>>>>>> the map with the calculated additional layer on it.
>>>>>>
>>>>>>
>>>>>>
>>>>>> I hope you can help me about that
>>>>>> Cheers
>>>>>> Carmelo
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----- Original Message ----- From: "Arnaud De Groof"
>>>>>> <Arnaud.DeGroof at spacebel.be>
>>>>>> To: "MapGuide Users Mail List" <mapguide-users at lists.osgeo.org>
>>>>>> Sent: Monday, January 12, 2009 4:18 PM
>>>>>> Subject: RE: [mapguide-users] Adding a temporary Layer in MapGuide
>>>>>>
>>>>>>
>>>>>> The first code :
>>>>>> <?php
>>>>>>
>>>>>> // Vital includes.
>>>>>>
>>>>>> include "../../mapviewerphp/constants.php";
>>>>>>
>>>>>> include "../../mapviewerphp/common.php";
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> $args = ($_SERVER['REQUEST_METHOD'] == "POST") ? $_POST : $_GET;
>>>>>>
>>>>>> $sessionId = $args['SESSION'];
>>>>>>
>>>>>> $mapName = $args['MAPNAME'];
>>>>>>
>>>>>> $layerName1 = 'YYY';
>>>>>>
>>>>>> $rlLayerResourceId = "Library://XXX/$layerName1.LayerDefinition";
>>>>>>
>>>>>>
>>>>>>
>>>>>> InitializeWebTier();
>>>>>>
>>>>>>
>>>>>>
>>>>>> $userInfo = new MgUserInformation($sessionId);
>>>>>>
>>>>>> $siteConnection = new MgSiteConnection();
>>>>>>
>>>>>> $siteConnection->Open($userInfo);
>>>>>>
>>>>>> $resourceService =
>>>>>> $siteConnection->CreateService(MgServiceType::ResourceService);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Read the MapDefinition into an XML DOM document object.
>>>>>>
>>>>>> $md = " Library://XXX/$mapName.MapDefinition "; // TODO Constant!
>>>>>>
>>>>>> $mdResourceId = new MgResourceIdentifier($md);
>>>>>>
>>>>>> $mdReader = $resourceService->GetResourceContent($mdResourceId);
>>>>>>
>>>>>> $mdXml = $mdReader->ToString();
>>>>>>
>>>>>> $mdDomDoc = DOMDocument::loadXML($mdXml);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Add a new MapLayer
>>>>>>
>>>>>> $targetNode = $mdDomDoc->getElementsByTagName("MapLayer")->item(0);
>>>>>>
>>>>>> $newNode = $targetNode->parentNode->insertBefore(new
>>>>>> DOMElement("MapLayer"), $targetNode);
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("Name", $layerName1));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("ResourceId",
>>>>>> $rlLayerResourceId));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("Selectable",
>>>>>> "false"));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("ShowInLegend",
>>>>>> "false"));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("LegendLabel"));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("ExpandInLegend",
>>>>>> "false"));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("Visible", "true"));
>>>>>>
>>>>>> $newNode->appendChild($mdDomDoc->createElement("Group"));
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Save the updated MapDefinition
>>>>>>
>>>>>> $updatedXml = $mdDomDoc->saveXML();
>>>>>>
>>>>>> $byteSource = new MgByteSource($updatedXml, strlen($updatedXml));
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Create the temporary MapDefinition
>>>>>>
>>>>>> $sessionMapName = $mdResourceId->GetName();
>>>>>>
>>>>>> $sessionMapDefinition =
>>>>>> "Session:$sessionId//$sessionMapName.MapDefinition";
>>>>>>
>>>>>> $sessionResourceId = new MgResourceIdentifier($sessionMapDefinition);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Write the updated MapDefinition
>>>>>>
>>>>>> $resourceService->SetResource($sessionResourceId,
>>>>>> $byteSource->GetReader(), null);
>>>>>>
>>>>>>
>>>>>>
>>>>>> //Test the updated MapDefinition
>>>>>>
>>>>>> $md1 = "Session:$sessionId//X.MapDefinition";
>>>>>>
>>>>>> $mdResourceId2 = new MgResourceIdentifier($md1);
>>>>>>
>>>>>> $mdReader2 = $resourceService->GetResourceContent($mdResourceId2);
>>>>>>
>>>>>> $mdXml2 = $mdReader2->ToString();
>>>>>>
>>>>>> $mdDomDoc2 = DOMDocument::loadXML($mdXml2);
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Read the WebLayout into an XML DOM document object.
>>>>>>
>>>>>> $wl = "Library://XXX/XXX.WebLayout"; // TODO Constant!
>>>>>>
>>>>>> $wlResourceId = new MgResourceIdentifier($wl);
>>>>>>
>>>>>> $wlReader = $resourceService->GetResourceContent($wlResourceId);
>>>>>>
>>>>>> $wlXml = $wlReader->ToString();
>>>>>>
>>>>>> $wlDomDoc = DOMDocument::loadXML($wlXml);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Now, update the MapDefinition.
>>>>>>
>>>>>> $mapdef = $wlDomDoc->getElementsByTagName("ResourceId")->item(0);
>>>>>>
>>>>>> $mapdef->nodeValue = "$md1";
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Prepare the updated XML to be written out to the session.
>>>>>>
>>>>>> $wlupdatedXml = $wlDomDoc->saveXML();
>>>>>>
>>>>>> $wlbyteSource = new MgByteSource($wlupdatedXml,
>>>>>> strlen($wlupdatedXml));
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Create a temporary WebLayout
>>>>>>
>>>>>> $wlsessionMapName = $wlResourceId->GetName();
>>>>>>
>>>>>> $wlsessionWebLayout =
>>>>>> "Session:$sessionId//$wlsessionMapName.WebLayout";
>>>>>>
>>>>>> $wlsessionResourceId = new MgResourceIdentifier($wlsessionWebLayout);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Write the updated WebLayout to the session.
>>>>>>
>>>>>> $resourceService->SetResource($wlsessionResourceId,
>>>>>> $wlbyteSource->GetReader(), null);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Redirect to the Ajax viewer.
>>>>>>
>>>>>> $redirectTo =
>>>>>> "mapguide/mapviewerajax/?SESSION=$sessionId&WEBLAYOUT=$wlsessionWebLayou
>>>>>> t";
>>>>>>
>>>>>> $host = $_SERVER["HTTP_HOST"];
>>>>>>
>>>>>> $url = "http://$host/$redirectTo";
>>>>>>
>>>>>>
>>>>>>
>>>>>> //Test
>>>>>>
>>>>>> $f = 'test.txt';
>>>>>>
>>>>>> $handle = fopen($f,"w");
>>>>>>
>>>>>> fwrite($handle, "test1:<".$mdXml.">\r\ntest 2
>>>>>> :<".$updatedXml.">\r\ntest
>>>>>> 3 :<".$wlXml.">\r\ntest 4 :<".$wlupdatedXml.">\r\ntest 5
>>>>>> :<".$url.">");
>>>>>>
>>>>>> fclose($handle);
>>>>>>
>>>>>>
>>>>>>
>>>>>> // Redirect!
>>>>>>
>>>>>> header("Location: $url");
>>>>>>
>>>>>> exit;
>>>>>>
>>>>>>
>>>>>>
>>>>>> ?>
>>>>>>
>>>>>> ___________________________________________________________________________________
>>>>>> E-MAIL DISCLAIMER
>>>>>>
>>>>>> The present message may contain confidential and/or legally
>>>>>> privileged information.
>>>>>> If you are not the intended addressee and in case of a transmission
>>>>>> error,
>>>>>> please notify the sender immediately and destroy this E-mail.
>>>>>> Disclosure, reproduction or distribution of this document and its
>>>>>> possible
>>>>>> attachments is strictly forbidden.
>>>>>>
>>>>>> SPACEBEL denies all liability for incomplete, improper, inaccurate,
>>>>>> intercepted,
>>>>>> (partly) destroyed, lost and/or belated transmission of the current
>>>>>> information
>>>>>> given that unencrypted electronic transmission cannot currently be
>>>>>> guaranteed
>>>>>> to be secure or error free. Upon request or in conformity with
>>>>>> formal, contractual
>>>>>> agreements, an originally signed hard copy will be sent to you to
>>>>>> confirm
>>>>>> the information contained in this E-mail.
>>>>>>
>>>>>> SPACEBEL denies all liability where E-mail is used for private use.
>>>>>>
>>>>>> SPACEBEL cannot be held responsible for possible viruses that might
>>>>>> corrupt this
>>>>>> message and/or your computer system.
>>>>>> ____________________________________________________________________________________
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> mapguide-users mailing list
>>>>>> mapguide-users at lists.osgeo.org
>>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>>> _______________________________________________
>>>>>> mapguide-users mailing list
>>>>>> mapguide-users at lists.osgeo.org
>>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>> _______________________________________________
>>>>> mapguide-users mailing list
>>>>> mapguide-users at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>
>>>> _______________________________________________
>>>> mapguide-users mailing list
>>>> mapguide-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>> _______________________________________________
>>> mapguide-users mailing list
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
> _______________________________________________
> 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