[mapguide-users] digitizing features

christoph g c.glink at fh-erfurt.de
Tue Mar 6 12:24:16 EST 2007


Hi Jackie,

thank you for your explanaition. I need a few days to work with this hints.
I´m afraid I have a lot more stupid questions. I will test a few things and
inform you, if ther is a special problem.

Nice greetings

Christoph



Jackie Ng wrote:
> 
> Christoph,
> 
> If you look at the code from that site, the digitization -> new feature
> process is done in server-side using the Resource Service and Feature
> Service APIs. Most of the action in MapGuide occurs on the server-side.
> 
> All the javascript code does is start that server-side action. In the
> example site. The javascript does a form submit to the server-side script.
> 
> The high-level overview (very brief, lots of blanks to fill) goes like
> this:
> 
> On the client-side (javascript):
> 
> - Call DigitizeXXX on the mapframe, passing a callback function.
> - When the callback function is called, invoke the server-side script via
> form submit, xmlhttprequest or other means, passing the attributes of the
> digitized geometry.
> 
> On the server-side:
> 
> - Initialize and create your services.
> - Create a new Feature Source or select a Feature Source where you want
> this new feature to be inserted.
> - Use an MgGeometryFactory to construct the appropriate geometry with the
> given parameters from the client.
> - Create an MgInsertFeatures passing the geometry and any extra
> properties. Add it to the MgFeatureCommandCollection queue.
> - Call MgFeatureService::UpdateFeatures passing the queued command
> collection.
> - Create a Layer from the Feature Source or pick an existing one already
> created.
> - Insert this new layer into your current map if it's not there already.
> - Trigger a client-side refresh, by emitting javascript to cause a refresh
> or some other means.
> - The new feature should then be visible on the map.
> 
> With regards to where to call the DigitizeXXX method, you have to
> determine two things:
> 
> - Where your calling page is (inside/outside the viewer frameset)
> - Where the map frame is with respect to your calling page.
> 
> Then you can figure out how many frames to walk up/down the viewer frame
> hierarchy to get to your map frame.
> 
> Also with Studio, it is a map/spatial data authoring tool, not a
> web-development tool.
> 
> Hope that helps.
> 
> - Jackie
> 
> 
> christoph g wrote:
>> 
>> Hi Jackie,
>> 
>> thank you for your explanation, but there are some questions left:
>> 
>> - I visited the website
>> http://data.mapguide.com/mapguide/devguide/index.php and I think my
>> project should work similar to this. The digitized features should be
>> transfered to esri shapefile, if not possible, to mysql database - I hope
>> this is possible.
>> 
>> - where (in whitch file or segment fo studio) do I call the DigitizeXXX
>> javascript method?
>> 
>> so long
>> 
>> Christoph
>> 
>> 
>> 
>> Jackie Ng wrote:
>>> 
>>> Hi there,
>>> 
>>> The mapguide viewer has built in functionality to perform digitizing. 
>>> 
>>> - You basically call the DigitizeXXX javascript method on the map frame
>>> (where XXX is Line, Point, LineString, Polygon, Circle, Rectangle. When
>>> you call that Digitize method, you need to pass a callback function that
>>> Digitize will call when it is done. That method has one parameter, the
>>> geometry object.
>>> 
>>> eg.
>>> 
>>> <script type="text/javascript">
>>> 
>>> //start digitizing
>>> function DigitizePoint() {
>>>      parent.parent.mapFrame.DigitizePoint(OnPointDigitized);
>>> }
>>> 
>>> //callback function
>>> function OnPointDigitized(point) {
>>>      //do something with your digitized point.
>>> }
>>> 
>>> </script>
>>> 
>>> - When the callback function is invoked, it's then up to you what you
>>> want to do with that geometry object. 
>>> 
>>> Have you seen the examples on the sample site (the Digitizing and
>>> Redlining sample) at
>>> http://data.mapguide.com/mapguide/devguide/index.php ?
>>> 
>>> - Jackie
>>> 
>>> 
>>> christoph g wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> I´m quite new to MapGuide OS. I hope somebody could help me and give me
>>>> a step by step explanation.
>>>> I made some maps in studio using my local data - quite nice and quite
>>>> simple. But now I want to add a digitizing function for web users. A
>>>> web user shoud be able to draw in the map. But this isn´t integrated in
>>>> studio, so this is not simple. And I need a little support.
>>>> 
>>>> Thanks
>>>> 
>>>> Chris
>>>> 
>>>>  
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/digitizing-features-tf3350657s16610.html#a9335674
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list