Thanks you. I went to http://localhost/mapguide/mapagent/index.html
I went to GetResourceContent Link, and perform a query using the ResourceID like Library://Mysite/Data/test.FeatureSource I got an XML file like this. <Provider>OSGeo.SDF</Provider> <Parameter> <Name>File</Name> <Value>%MG_DATA_FILE_PATH%test.sdf</Value> </Parameter> <Parameter> <Name>ReadOnly</Name> <Value>False</Value> </Parameter> Francisco J Rojas D wrote: > > Hi There, > > You can change the ReadOnly attribute by MapAgent index.html page or > programmatically > > a) Changing by MapAgent web page. > > Go to http://servername:port/mapguide[2008]/mapagent/index.html > > Go to GetResourceContent Link, and perform a query using the ResourceID > like Library://Samples/Sheboygan/Data/Parcels.FeatureSource > > You will get an XML file like this. > > <Provider>OSGeo.SDF</Provider> > > <Parameter> > > <Name>File</Name> > > <Value>%MG_DATA_FILE_PATH%Road.sdf</Value> > > </Parameter> > > <Parameter> > > <Name>ReadOnly</Name> > > <Value>TRUE</Value> > > </Parameter> > > > You will see a tag <ReadOnly> if that tag value is TRUE change you must > save the XML file as ParcelsContent.XML, then modify with Notepad changing > the TRUE value to FALSE. > > Then go to http://servername:port/mapguide[2008]/mapagent/index.html, go > to SetResource, and provide the ResourceID and the Content XML File by > upload your modified ParcelsContent.XML, for the HEADER field leave it > empty, click on submit and the SDF file will be read/write now. > > b) Changing Programmatically > > Use the next routines and examples : > > // This routine makes a resource writable > > private void set_ResourceWriteAble(MgResourceIdentifier resoureId, > MgResourceService resourceService) > {//by knife114 > > //----------------------------------------------------------------------------- > String buffer; > MgByteReader reader = > resourceService.GetResourceContent(resoureId); > buffer = reader.ToString(); > if (buffer.Contains("<Value>TRUE</Value>")) > { > buffer = buffer.Replace("<Value>TRUE</Value>", > "<Value>FALSE</Value>"); > Byte[] buf_Byte = > System.Text.Encoding.Default.GetBytes(buffer); > MgByteSource byteSource = new MgByteSource(buf_Byte, > buf_Byte.Length); > > resourceService.SetResource(resoureId, byteSource.GetReader(), > null); > } > > //----------------------------------------------------------------------------- > } > > This is an example code using the code above: > > MgGeometryFactory geoFac = new MgGeometryFactory(); > MgLinearRingCollection LinearRingCollection = new > MgLinearRingCollection(); > MgCoordinateCollection CoordinateCollection = new > MgCoordinateCollection(); > > > String[] coods = this.TextBox1.Text.Split(','); > for (int i = 1; i <= Convert.ToInt16(coods[0])*2 ; i+=2) > { > double x = Convert.ToDouble(coods[i]); > double y = Convert.ToDouble(coods[i+1]); > MgCoordinate coordinate = geoFac.CreateCoordinateXY(x, > y); > CoordinateCollection.Add(coordinate); > //MgPoint point = new > MgGeometryFactory().CreatePoint(coordinate); > } > > MgLinearRing LinearRing = > geoFac.CreateLinearRing(CoordinateCollection); > CoordinateCollection.Clear(); > LinearRingCollection.Add(LinearRing); > MgPolygon Polygon = geoFac.CreatePolygon(LinearRing, null); > > > //propertyCol.Add(new MgInt32Property("Autogenerated_SDF_ID", > 11)); > propertyCol.Add(new MgStringProperty("Name", "it's me")); > propertyCol.Add(new MgInt32Property("Key", 11)); > propertyCol.Add(new MgStringProperty("Url", "me,too")); > > //Polygon. > propertyCol.Add(new MgGeometryProperty("Data", > geometryReaderWriter.Write(Polygon))); > > ftrCmdCol.Add(new MgInsertFeatures(lyrClass, propertyCol)); > > set_ResourceWriteAble(resoureId, resourceService); // set sdf > readonly=false > > if (ftrCmdCol.Count >= 1) > { > ReleaseReader(ftrService.UpdateFeatures(resoureId, > ftrCmdCol, false), ftrCmdCol); > > layerToSave.ForceRefresh(); > map.Save(resourceService); > } > > Regards > > Francisco J Rojas D > > > > Pascal Coulon wrote: >> >> Hi There, >> >> When creating a layer (SDF) in Studio. It is created in ReadOnly mode. >> You need to enable read/write by using the mapagent. Let me know if you >> need any further details. >> >> Regards, >> >> pascal >> >> >> >> Jackie Ng wrote: >>> >>> Open two browser windows/tabs, one to your web application that adds the >>> points. Another to the schemareport page (usually at >>> http://servername:port/mapguide/schemareport/main.php ) >>> >>> Run your add point routine, then check if the schemareport for that >>> feature source has included the point you have just added. >>> >>> If the point is there, then i suspect it is something to do with the >>> layer that's based off of the feature source. >>> >>> Otherwise, your php script is clearly failing to insert the new point >>> feature. >>> >>> - Jackie >>> >>> >>> gaku wrote: >>>> >>>> Yes,I have created site resources by use Administrator username. >>>> >>>> >>>> >>>> -gaku >>>> >>>> >>>> Jackie Ng wrote: >>>>> >>>>> Oh I see, I thought you were adding points to a session-based feature >>>>> source. >>>>> >>>>> In that case, did you create a mapguide session via a username that >>>>> has permissions to modify site resources? >>>>> >>>>> - Jackie >>>>> >>>>> >>>>> gaku wrote: >>>>>> >>>>>> Yes, I have created the feature source by using Mapguide Studio. >>>>>> >>>>>> >>>>>> Jackie Ng wrote: >>>>>>> >>>>>>> Have you actually created the feature source pointed to by >>>>>>> $featureSourceId ? (ie. Have you called >>>>>>> $featureService->CreateFeatureSource() ?) >>>>>>> >>>>>>> - Jackie >>>>>>> >>>>>>> >>>>>>> gaku wrote: >>>>>>>> >>>>>>>> Hi all >>>>>>>> >>>>>>>> I'm trying to let the user insert a point feature in PHP along with >>>>>>>> some attributes. The feature source is an SDF file and the code was >>>>>>>> translated/modified from the PHP example (draw_line). The user can >>>>>>>> get the X, Y coordinates from another button (works fine). >>>>>>>> >>>>>>>> Everything compiles fine and execute well but no feature is added >>>>>>>> to the feature source. I tried with a converted SDF feature source >>>>>>>> (didnt change a thing). >>>>>>>> >>>>>>>> Did I miss something ? Did I do something wrong :) >>>>>>>> >>>>>>>> Any help would be appreciated >>>>>>>> >>>>>>>> here's the code : >>>>>>>> >>>>>>>> ------------------------------------------------------------ >>>>>>>> >>>>>>>> try >>>>>>>> { >>>>>>>> MgInitializeWebTier($webconfigFilePath); >>>>>>>> >>>>>>>> // Get the session information passed from the viewer. >>>>>>>> $sessionId = ($_SERVER['REQUEST_METHOD'] == >>>>>>>> "POST")?$_POST['SESSION']: $_GET['SESSION']; >>>>>>>> >>>>>>>> // Get the user information using the session id, >>>>>>>> // and set up a connection to the site server. >>>>>>>> $userInfo = new MgUserInformation($sessionId); >>>>>>>> $siteConnection = new MgSiteConnection(); >>>>>>>> $siteConnection->Open($userInfo); >>>>>>>> >>>>>>>> >>>>>>>> $resourceService = >>>>>>>> $siteConnection->CreateService(MgServiceType::ResourceService); >>>>>>>> $featureService = >>>>>>>> $siteConnection->CreateService(MgServiceType::FeatureService); >>>>>>>> $featureSourceId = new >>>>>>>> MgResourceIdentifier('Library://Sample/Data/020101Markup.FeatureSource'); >>>>>>>> >>>>>>>> >>>>>>>> $map = new MgMap(); >>>>>>>> $map->Open($resourceService, $mgMapName); >>>>>>>> >>>>>>>> //$geometryFactory = new MgGeometryFactory(); >>>>>>>> $wktReaderWriter = new MgWktReaderWriter(); >>>>>>>> $agfReaderWriter = new MgAgfReaderWriter(); >>>>>>>> >>>>>>>> $geo = $wktReaderWrite->Read("POINT XY ( $x, $y )"); >>>>>>>> >>>>>>>> $geoByteReader = new MgByteReader(); >>>>>>>> $geoByteReader = $agfReaderWriter->Write($geo); >>>>>>>> >>>>>>>> $idid = 500; >>>>>>>> >>>>>>>> $propertyValues = new MgPropertyCollection(); >>>>>>>> $propertyValues->Add(new MgInt32Property("ID", $idid >>>>>>>> )); >>>>>>>> $propertyValues->Add(new MgStringProperty(name, >>>>>>>> 'test')); >>>>>>>> $propertyValues->Add(new MgGeometryProperty('Geometry', >>>>>>>> $geoByteReader)); >>>>>>>> >>>>>>>> $commands = new MgFeatureCommandCollection(); >>>>>>>> $commands->Add(new MgInsertFeatures('020101Markup', >>>>>>>> $propertyValues)); >>>>>>>> $featureService->UpdateFeatures($featureSourceId, >>>>>>>> $commands, >>>>>>>> false); >>>>>>>> >>>>>>>> >>>>>>>> } >>>>>>>> catch (MgException $e) >>>>>>>> { >>>>>>>> $errorMsg = $e->GetMessage(); >>>>>>>> $errorDetail = $e->GetDetails(); >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> -------------------------------end of code ------------- >>>>>>>> >>>>>>>> --Thanks, >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/Add-Point-to-Existing-Layer-tp15136337s16610p15306462.html Sent from the MapGuide Users mailing list archive at Nabble.com. _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users
