[mapguide-users] Create programmatically a map

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Fri Feb 13 05:20:06 EST 2009


Try to look at the Maestro code:
http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI/LocalNativeConnection.cs#L182

Hopefully you will find a small difference there.

Regards, Kenneth Skovhede, GEOGRAF A/S



sekko970 skrev:
> Yes, the "OuterXml" property contains the XML header line.
> Fabio
>
> ------------------------------------------------------------------------------------------------------
>
>
> Kenneth Skovhede, GEOGRAF A/S wrote:
>   
>> Does the "OuterXml" property contain the <? version="1.0" 
>> encoding="utf-8" standalone="true" ?> line?
>>
>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>
>>
>>
>> sekko970 skrev:
>>     
>>> Hi Kenneth, and thanks for your promptly reply.
>>>
>>> I had used an ancoding instance.
>>>
>>> Below, you can see my code to create the new map:
>>>
>>> Dim resID As New
>>> MgResourceIdentifier(Library://.../maps/MyMap.MapDefinition)
>>>
>>> Dim enc As New System.Text.UTF8Encoding(False)
>>>
>>> Dim newMapDef As New MgByteSource(enc.GetBytes(XMLMapTemplate.OuterXml),
>>> enc.GetByteCount(XMLMapTemplate.OuterXml))
>>>
>>> newMapDef.SetMimeType(MgMimeType.Xml)
>>>
>>> Dim resourceSrvc As MgResourceService =
>>> siteConn.CreateService(MgServiceType.ResourceService)
>>>
>>> resourceSrvc.SetResource(resID, newMapDef.GetReader(), Nothing)
>>>
>>> Dim map As New MgMap()
>>>
>>> map.Create(resourceSrvc, resID, MapName)
>>>
>>> ...
>>>
>>> Then, this is my code to create the map layout:
>>>
>>> Dim resID As New
>>> MgResourceIdentifier(Library://.../Layouts/MyMap.WebLayout)
>>>
>>> Dim enc As New System.Text.UTF8Encoding(False)
>>>
>>> Dim newLayoutDef As New
>>> MgByteSource(enc.GetBytes(XMLLayoutTemplate.OuterXml),
>>> enc.GetByteCount(XMLLayoutTemplate.OuterXml))
>>>
>>> newLayoutDef.SetMimeType(MgMimeType.Xml)
>>>
>>> resourceSrvc As MgResourceService =
>>> siteConn.CreateService(MgServiceType.ResourceService)
>>>
>>> resourceSrvc.SetResource(resID, newLayoutDef.GetReader(), Nothing)
>>>
>>> map.Save(resourceSrvc)
>>>
>>>
>>> Thanks for your help.
>>> Fabio
>>>
>>> ------------------------------------------------------------------------------------------------------
>>>
>>>
>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>   
>>>       
>>>> You could have the problem that .Net emits an utf-8 byte-order-marker 
>>>> (BOM), when
>>>> writing xml.
>>>> http://en.wikipedia.org/wiki/Byte-order_mark
>>>>
>>>> To counter this, explicitly create an encoding instance:
>>>> System.Text.Encoding enc = new System.Text.UTF8Encoding(false);
>>>>
>>>> Then implement a xml writer, or manually convert the xml to bytes, using 
>>>> the encoding.
>>>>
>>>> FYI, the MaestroAPI is LGPL, and so you may use it as a library, even 
>>>> for commercial applications,
>>>> and it handles this quirk and others.
>>>>
>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>
>>>>
>>>>
>>>> sekko970 skrev:
>>>>     
>>>>         
>>>>> Dear all,
>>>>>
>>>>> I have created programmatically a map (and its layout) using MG .Net
>>>>> web
>>>>> API.
>>>>> After creation, the new map and layout are visible in MG Maestro, and
>>>>> using
>>>>> the 'Show in browser" button are correctly shown in browser.
>>>>>
>>>>> The problem happens when I load the map directly from browser, and the
>>>>> following error appears:
>>>>> << The type 'OSGeo.MapGuide.MgNullArgumentException' in assembly
>>>>> 'MapGuideDotNetApi, Version= 2.0.2.30 11, Culture=neutral,
>>>>> PublicKeyToken=null' is not marked as serializable >>.
>>>>>
>>>>> Then, simply saving the new layout from MG Maestro (without any
>>>>> modification), and reloading the map directly from browser, the error
>>>>> disappears and the map is correctly shown.
>>>>>
>>>>> After saving the layout, there aren't differences in map and layout XML
>>>>> definitions.
>>>>>
>>>>> Have you any idea about?
>>>>> Thank you in advance.
>>>>> Fabio
>>>>>
>>>>>   
>>>>>       
>>>>>           
>>>> _______________________________________________
>>>> 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
>>
>>
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090213/c7bc7b80/attachment.html


More information about the mapguide-users mailing list