[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