[mapguide-users] Fusion and Digitizing

Mark Pendergraft markp at Meadgilman.com
Fri Jan 30 11:27:44 EST 2009


Even better news!
Any word on when the 2.0 beta will be available?
-Mark

-----Original Message-----
From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Paul
Spencer
Sent: Friday, January 30, 2009 4:16 AM
To: MapGuide Users Mail List
Cc: Mike Adair
Subject: Re: [mapguide-users] Fusion and Digitizing

Thanks guys ... the digitizing code has changed in the upcoming 2.0  
release to use the OpenLayers vector library rather than our home- 
grown canvas implementation so we'll make sure there is a way to clean  
up after digitizing ...

Mike, can you take a skim through this thread and make sure the new  
Vector implementation has a method for cleaning up, or implicitly  
cleans up if possible.

Cheers

Paul


On 29-Jan-09, at 6:14 PM, Mark Pendergraft wrote:

> thanks!
> I'll take a look at it later tonight.
> -Mark
>
> -----Original Message-----
> From: mapguide-users-bounces at lists.osgeo.org
> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Rodolfo
> Moreno
> Sent: Thursday, January 29, 2009 3:02 PM
> To: mapguide-users at lists.osgeo.org
> Subject: RE: [mapguide-users] Fusion and Digitizing
>
>
> Hi Mark, I have gotten to clear the digitized polygons in FUSION  
> viewer
> by
> modifying the MapGuideViewerapi.js
>
> var polDigitizer;
> function DigitizePolygon(handler) {
>    if (handler) {
>      var Fusion = window.top.Fusion;
>      var mapWidget = Fusion.getWidgetById(mapWidgetId);
>      var digitizer = new Fusion.Tool.Canvas.Polygon(mapWidget);
>      digitizer.mouseDown = MultiPointHandlers.prototype.mouseDown;
>      digitizer.mouseMove = MultiPointHandlers.prototype.mouseMove;
>      digitizer.dblClick = MultiPointHandlers.prototype.dblClick;
>      Object.inheritFrom(digitizer, Fusion.Tool.Canvas.prototype, []);
>      digitizer.handler = handler;
>      digitizer.activateCanvas();
>
>      polDigitizer = digitizer;
>
>      //add a listener to update the position of the features
>      var mapWidget = Fusion.getWidgetById(mapWidgetId);
>      mapWidget.registerForEvent(Fusion.Event.MAP_EXTENTS_CHANGED,
> extendEvtResponse );
>    }
> }
>
> function extendEvtResponse(){
>  var digitizer = polDigitizer;
>  digitizer.updatePx();
>  digitizer.clearContext();
>  digitizer.draw(digitizer.context);
> }
>
> function clearPol(){
>   polDigitizer.clearContext();
>   var Fusion = window.top.Fusion;
>   var mapWidget = Fusion.getWidgetById(mapWidgetId);
>   mapWidget.deregisterForEvent(Fusion.Event.MAP_EXTENTS_CHANGED,
> extendEvtResponse);
>   polDigitizer.deactivateCanvas();
>
> }
>
> In your main page you must call to clearPol() function in order to  
> clear
> the
> digitized polygon. For the other shapes I guess that the logic is the
> same.
> The above code only clears the last polygon digitized. It's  
> necessary to
> manage an array of digitizers for controlling all digitized  
> polygons. I
> haven't had time for trying it.
>
> I have tested with mapguide 2.0.1 with FUSION 1.0.6 in IE7 and FF2
> maybe you can improve it.
>
> Regards,
>
>
> GordonL wrote:
>>
>> Hi Mark,
>> I know what you mean about the sticky digitizing... I was told to  
>> look
> at
>> the
>> resetCanvas function in the Measure.js file to get rid of that
> leftover
>> digitize graphics...but I haven't tried it yet...
>>
>> gordon
>>
>>
>> Mark Pendergraft wrote:
>>>
>>> I was in no way implying the wheel should be reinvented, in fact the
>>> code I posted was an example of how to use the MapGuideViewerAPI.js
>>> supplied DigitizePolygon(handler) function that you referred to.
>>>
>>> I did say that I would like to see some method to clear the  
>>> digitized
>>> shapes after the function's handler has been called.  In MGOS 1.2
> after
>>> a polygon was digitized, it was destroyed.  In MGOS 2 with Fusion
> 1.1,
>>> the polygon stays on the map until the user closes their browser.
>>>
>>> -Mark P.
>>>
>>> -----Original Message-----
>>> From: mapguide-users-bounces at lists.osgeo.org
>>> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of GordonL
>>> Sent: Thursday, January 29, 2009 1:20 PM
>>> To: mapguide-users at lists.osgeo.org
>>> Subject: RE: [mapguide-users] Fusion and Digitizing
>>>
>>>
>>> You know, you really do not need to reinvent the wheel, if you have
>>> already
>>> built a lot of code with the Basic Web Layouts.  Did you know that
>>> Fusion
>>> supports some retro digitizing methods?
>>> For example, I put the following in an INVOKESCRIPT in the Flexible
> Web
>>> Layout:
>>>
>>> top.parent.DigitizePoint(top.OnPointDigitized);
>>>
>>> I also have the OnPointDigitized in a JS file attached to the main
>>> frame/window.  So I reuse my code for both FUSION and Basic Web
>>> Layouts...
>>>
>>> Just check out the functions in the MapGuideViewerApi.js in the
>>> /www/fusion/MapGuide/ folder...
>>> They include:
>>> Refresh()
>>> SetSelectionXML(selectionXml)
>>> ZoomToView(x, y, scale, refresh)
>>> DigitizePoint(handler)
>>> DigitizeLine(handler)
>>> DigitizeLineString(handler)
>>> DigitizeRectangle(handler)
>>> DigitizePolygon(handler)
>>>
>>> They work just like the classic MapGuide Viewer API...pretty sweet.
>>>
>>> gordon
>>>
>>>
>>>
>>>
>>> Mark Pendergraft wrote:
>>>>
>>>> Absolutely.
>>>> My biggest beef with digitizing in Fusion is that when you digitize
> an
>>>> object (point/polygon/etc.) it stays on the map.  The existing
>>> functions
>>>> don't have a clear method to remove the digitized object, and my
>>>> programming skills aren't good enough that I want to mess with it.
>>>>
>>>> It's very simple,
>>>> Add a reference to MapGuideViewerApi.js and call DigitizePolygon()
>>>>
>>>> The DigitizePolygon function requires that you pass it a handler
>>>>
>>>> Something similar to the following:
>>>>
>>>> DigitizePolygon(CreateJobByPolygon);
>>>>
>>>> function CreateJobByPolygon(polygon) {
>>>>    var geomText = polygon.Count;
>>>>    for (var i = 0; i < polygon.Count; i++){
>>>>        geomText += "," + polygon.Point(i).X + "," +
>>> polygon.Point(i).Y;
>>>>    }
>>>>    Fusion.getWidgetById('Map').setCursor('auto');
>>>> //	here you would send your geomText to a web service, or aspx page
>>>> that would turn the coordinates into a linear ring
>>>> //    and then a polygon from there.  The geomText variable (in  
>>>> this
>>>> particular situation) evaluates to something similar to
>>>> //    3,5000.00,5000.00,5050.00,5050.00,5100.00,5100.00
>>>> }
>>>>
>>>>
>>>> Of course you can format the way the coordinates are sent to your
>>>> application any way you want.
>>>>
>>>> I would also recommend calling the DigitizePolygon() function from
> an
>>>> InvokeScript() widget, as I had some problems when I tried to
> actually
>>>> create a widget and call it from there.  Also, I prefer to change  
>>>> my
>>>> cursor when the widget is activated, you can see I put it back to
>>> 'auto'
>>>> in the CreateJobByPolygon() function, but I like to set it to
>>>> 'crosshair' before the DigitizePolygon function is called.
>>>>
>>>> -Mark P.
>>>>
>>>> -----Original Message-----
>>>> From: mapguide-users-bounces at lists.osgeo.org
>>>> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Stefan
>>>> Dalakov
>>>> Sent: Friday, January 23, 2009 12:35 PM
>>>> To: MapGuide Users Mail List
>>>> Subject: [mapguide-users] Fusion and Digitizing
>>>>
>>>> Hi all,
>>>> From what I read here, should I conclude that digitizing functions
> in
>>>
>>>> Fusion are not yet fully supported ?
>>>> I need to digitize a polygon on the map and save it permanently. I
>>> have
>>>> this working with AJAX viewer, but would like to port it to Fusion
>>>> Has anyone succeeded to  do this ?
>>>>
>>>> Stefan Dalakov
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://n2.nabble.com/Fusion-and-Digitizing-tp2205560p2241352.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
>>> _______________________________________________
>>> mapguide-users mailing list
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>
>>>
>>
>>
>
>
> -----
> Rodolfo Moreno
> CivilEng
>
> -- 
> View this message in context:
> http://n2.nabble.com/Fusion-and-Digitizing-tp2205560p2241865.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
> _______________________________________________
> 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