[mapguide-users] Create programmatically a map

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Fri Feb 13 04:55:35 EST 2009


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
>>
>>
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090213/d8246326/attachment.html


More information about the mapguide-users mailing list