I have a DB with coordinates, but how am I going to put these coordinates in a layer. Even from AutoDesk...?
Kenneth Skovhede, GEOGRAF A/S wrote: > > I still can't tell which of the two scenarios you are aiming at. > > So you have a highway, and some points on the highway. > > I'm thinking that the points should be created before the user starts to > do anything. > Does it make sense to convert the data into a database with X and Y > columns, before even thinking about what MapGuide does? > You can make a little batch job that updates the database if you prefer, > still without use of MapGuide. > > Once you have such a database, set it up in Studio or Maestro like a > regular layer. > Add the layer to the map, but make it invisible if you only want to show > it in some cases. > > Now, during runtime, you can create a copy of the LayerDefinition, and > insert a "filter" on the layer. > This will allow you to control what points a specific user sees. > Now save this copy of the LayerDefinition to the Session store. > The update the layer in the runtime map to point to the Session based > LayerDefinition, and set the layer visible. > Now save the runtime map, and issue a refresh on the client. > > I can't tell from your code fragments what goes wrong, but there is no > map.Save(...) call present, which is > how you would save the changes to the map. There is no > "getMap().Refresh()" call present, which must be issued > on the client in Javascript. > > Regards, Kenneth Skovhede, GEOGRAF A/S > > > > Galois skrev: >> You are wright about the confusion... >> >> Anyway, the scenario is the following: >> >> I have a map with the Highway of two Italian Cities. >> Firstly, I would like to display some points of interest on that map. >> Those points I have them in an XML file. >> >> So, my problem till now, is that I add a new layer on my map ( I see in >> debug mode that my map's Layers has increased ) but this layer doesn't >> appear in the page. >> If I solve this thing I'll try to add the points to this layer. >> Also, keep in mind that these points of interest, there might be static >> or >> not. >> This means that there is no point to create all this from Autodesk >> manually... >> >> Thank you (both) for the help! >> >> >> >> >> >> Kenneth Skovhede, GEOGRAF A/S wrote: >> >>> I agree with Maksim, there seems to be some confusion as to what you >>> want to do. >>> There are two basic scenarios: >>> >>> 1. You want to display some points based on context. >>> An example would be searching for hotels in a certain price interval, >>> and the opening a map with the hotels shown. >>> >>> 2. You want to display a number of points, but the data changes more or >>> less frequently. >>> An example of this would be position of vehicles. >>> >>> A combination would be to show the position of vehicles that are using >>> diesel engines. >>> >>> Could you elaborate on what your scenario is like? >>> >>> Regards, Kenneth Skovhede, GEOGRAF A/S >>> >>> >>> >>> Maksim Sestic skrev: >>> >>>> Hmm, if you're attending to batch-process large number of points (along >>>> with >>>> attached data) then web service calling FDO directly will do it much >>>> more >>>> efficiently, since you can preset it on server side to poke exact >>>> datastore/schema (thus skipping enumeration). Especially if you're >>>> planning >>>> to parse some client-side file holding actual information. Other way >>>> round >>>> you'll be making too many client-server roundtrips.Of couse, it all >>>> depends >>>> on the overall setup... >>>> >>>> -----Original Message----- >>>> From: [EMAIL PROTECTED] >>>> [mailto:[EMAIL PROTECTED] On Behalf Of Galois >>>> Sent: Wednesday, October 15, 2008 16:29 >>>> To: mapguide-users@lists.osgeo.org >>>> Subject: RE: [mapguide-users] Adding a point to a map... PLZ Help!!! >>>> (.NET >>>> -C#) >>>> >>>> >>>> This is not a solution, cause at the feature, I'll have lot of XML >>>> files >>>> and >>>> the code will have to work in order to put all the interest points >>>> automatic >>>> on the map.... >>>> >>>> ThanX anyway :-D >>>> >>>> >>>> >>>> Maksim Sestic wrote: >>>> >>>> >>>>> If the MG->Datastore approach is making you headaches, why don't you >>>>> directly access the datastore (i.e. via FDO if it's managed after all) >>>>> and store the point there "manually"? Of course, if you're poking it >>>>> from a client you'll have to establish a web service to do the job on >>>>> the server side. And don't forget to call MG refresh method from >>>>> JavaScript once you have that point within a datastore. >>>>> >>>>> Regards, >>>>> Maksim Sestic >>>>> >>>>> -----Original Message----- >>>>> From: [EMAIL PROTECTED] >>>>> [mailto:[EMAIL PROTECTED] On Behalf Of Galois >>>>> Sent: Wednesday, October 15, 2008 16:15 >>>>> To: mapguide-users@lists.osgeo.org >>>>> Subject: Re: [mapguide-users] Adding a point to a map... PLZ Help!!! >>>>> (.NET >>>>> -C#) >>>>> >>>>> >>>>> Maybe I'm stupid.... >>>>> >>>>> I cannot do it work. I have reconstruct the whole thing, but the new >>>>> Layer doesn't appear in the page. >>>>> >>>>> I followed the Dev's Guide in order to create a Layer and add it in >>>>> the map but nothing. >>>>> >>>>> Basically, I added these three functions. I really would appreciate if >>>>> u could give me some help.. >>>>> >>>>> >>>>> public MgLayer addLayerRsc2Map(MgResourceIdentifier layerResId, >>>>> MgResourceService resourceSrvc, string layerName, string >>>>> layerLegendLabel, MgMap map) >>>>> { >>>>> //MgLayer newLayer = new MgLayer(layerResId, resourceSrvc); >>>>> MgLayer newLayer = new MgLayer(layerResId , resourceSrvc); >>>>> >>>>> //Add the new layer to the map's layer collection >>>>> newLayer.SetName(layerName); >>>>> newLayer.SetVisible(true); >>>>> newLayer.SetLegendLabel(layerLegendLabel); >>>>> newLayer.SetDisplayInLegend(true); >>>>> MgLayerCollection layerCollection = map.GetLayers(); >>>>> if( !layerCollection.Contains(layerName) ) >>>>> { >>>>> //Insert the new layer to position 0 so it is at >>>>> //the top of the drawing order >>>>> layerCollection.Insert(0,newLayer); >>>>> } >>>>> MgLayerGroupCollection skata = map.GetLayerGroups(); >>>>> return newLayer; >>>>> } >>>>> >>>>> >>>>> public MgLayer addLayerDef2Map(string layerDefinition, string >>>>> layerName, string layerLegendLabel, string sessionId, >>>>> MgResourceService resourceSrvc, MgMap map ) >>>>> { >>>>> // Adds the layer definition (XML) to the map. >>>>> // Returns the layer. >>>>> >>>>> //Validate the XML. >>>>> XmlDocument domDocument = new XmlDocument(); >>>>> domDocument.LoadXml(layerDefinition); >>>>> domDocument.PreserveWhitespace = true; >>>>> MemoryStream stream = new System.IO.MemoryStream(); >>>>> domDocument.Save(stream); >>>>> >>>>> Byte[] byteArray = stream.ToArray(); >>>>> string outerXml = >>>>> System.Text.Encoding.UTF8.GetString(byteArray, >>>>> 0, >>>>> byteArray.Length); >>>>> byteArray = System.Text.Encoding.UTF8.GetBytes(outerXml); >>>>> >>>>> //Save the new layer definition to the Session. >>>>> MgByteSource byteSource = new MgByteSource(byteArray , >>>>> byteArray.Length); >>>>> byteSource.SetMimeType(MgMimeType.Xml); >>>>> MgResourceIdentifier resourseId = new >>>>> MgResourceIdentifier("Session:" + map.SessionId + "//" + layerName + >>>>> "." + MgResourceType.LayerDefinition); >>>>> >>>>> // Set the map with the new resource >>>>> resourceSrvc.SetResource(resourseId, byteSource.GetReader(), >>>>> null); >>>>> >>>>> >>>>> MgLayer newLayer = addLayerRsc2Map(resourseId, resourceSrvc, >>>>> layerName, layerLegendLabel, map); >>>>> return newLayer; >>>>> } >>>>> >>>>> >>>>> >>>>> public void addLayer2Group(MgLayer layer, string layerGroupName, >>>>> string layerGroupLegendLabel, MgMap map) >>>>> // Adds a layer to a layer group. If necessary, it creates >>>>> // the layer group. >>>>> { >>>>> //Get the layer group >>>>> MgLayerGroup layerGroup; >>>>> MgLayerGroupCollection layerGroupCollection = >>>>> map.GetLayerGroups(); >>>>> if( layerGroupCollection.Contains(layerGroupName) ) >>>>> { >>>>> layerGroup = layerGroupCollection.GetItem(layerGroupName); >>>>> } >>>>> else >>>>> { >>>>> //It does not exist, so create it. >>>>> layerGroup = new MgLayerGroup(layerGroupName); >>>>> layerGroup.SetVisible(true); >>>>> layerGroup.SetDisplayInLegend(true); >>>>> layerGroup.SetLegendLabel(layerGroupLegendLabel); >>>>> layerGroupCollection.Add(layerGroup); >>>>> } >>>>> //Add the layer to the group. >>>>> layer.SetGroup(layerGroup); >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> Kenneth Skovhede, GEOGRAF A/S wrote: >>>>> >>>>> >>>>>> Did you look at the buffer sample code in the AJAX viewer? >>>>>> It does exactly what is required, besides inserting your points. >>>>>> >>>>>> About your code: >>>>>> You do not use the "resourceIdentifier" variable, which means your >>>>>> layer might reference something else. >>>>>> You save the layers to the regular repository, which is fine, but >>>>>> each use will overwrite the previous copy, making it impossible to >>>>>> reliably serve more than one user. >>>>>> You do not add the layer to the runtime map, and you do not save the >>>>>> runtime map. >>>>>> >>>>>> You write: "I just want to display them". >>>>>> Well, MapGuide works by displaying data from a FeatureSource, styled >>>>>> through a LayerDefinition. >>>>>> You cannot insert data in the LayerDefinition, it must be in a >>>>>> FeatureSource. >>>>>> >>>>>> If you insert the data in an existing FeatureSource, with an existing >>>>>> layer, that is fine too, but I cannot guess that is what you want. >>>>>> >>>>>> You did not mention an Xml file with points before, just a single >>>>>> point. >>>>>> >>>>>> Depending on your data, you may want to insert them into a database >>>>>> (like Sqlite or Access), or into an SDF file. >>>>>> If you choose the database version, your FeatureSource can be of type >>>>>> ODBC. >>>>>> >>>>>> If you use a database, you can insert the points using regular SQL >>>>>> queries against the database. >>>>>> If the points are persistent (that is, not tied to a particular users >>>>>> map, like session values), you can just create a FeatureSource + >>>>>> Layer through Maestro or Studio without requirering any code. >>>>>> >>>>>> If you are looking to create something similar to "Points of >>>>>> interrest" >>>>>> with a nice little flag, you might >>>>>> consider using OpenLayers instead of the AJAX viewer: >>>>>> http://www.openlayers.org/ >>>>>> http://www.openlayers.org/dev/examples/georss-markers.html >>>>>> (OpenLayers also supports MapGuide as the backend server) >>>>>> >>>>>> >>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S >>>>>> >>>>>> >>>>>> >>>>>> Galois skrev: >>>>>> >>>>>> >>>>>>> First of all, thank u fro your reply. >>>>>>> >>>>>>> I don't get why should I create a temp layer. >>>>>>> I have some coordinates in an XML file, and I just want to display >>>>>>> them on an existing layer. >>>>>>> >>>>>>> Though I tried to create a new layer, it does not appear in my maps >>>>>>> layers. >>>>>>> >>>>>>> That's what I did... >>>>>>> >>>>>>> >>>>>>> >>>>>>> MgResourceIdentifier resourceIdentifier = new >>>>>>> MgResourceIdentifier("Library://GoSpatial/Data/airports.FeatureSource"); >>>>>>> MgResourceIdentifier layerResId = new >>>>>>> MgResourceIdentifier("Library://GoSpatial/Layers/TmpLayer.LayerDefin >>>>>>> i >>>>>>> tion"); >>>>>>> >>>>>>> >>>>>>> string layerDefinition = >>>>>>> File.ReadAllText("C:/Inetpub/wwwroot/iwaygis/TmpLayer.LayerDefinitio >>>>>>> n >>>>>>> .xml"); >>>>>>> >>>>>>> >>>>>>> MgByteReader reader = new MgByteReader(layerDefinition, >>>>>>> "text/xml"); >>>>>>> >>>>>>> resourceSrvc.SetResource(layerResId, reader, null); >>>>>>> >>>>>>> >>>>>>> tmpLayer = new MgLayer(layerResId, resourceSrvc); >>>>>>> tmpLayer.SetName("TempLayer"); >>>>>>> tmpLayer.SetLegendLabel("TempLayer"); >>>>>>> tmpLayer.SetDisplayInLegend(true); >>>>>>> tmpLayer.SetSelectable(true); >>>>>>> >>>>>>> MgLayerCollection layers = map.GetLayers(); >>>>>>> layers.Insert(0, tmpLayer); >>>>>>> tmpLayer.SetVisible(true); >>>>>>> tmpLayer.ForceRefresh(); >>>>>>> >>>>>>> Thx! >>>>>>> >>>>>>> >>>>>>> >>>>>>> Kenneth Skovhede, GEOGRAF A/S wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> A few steps are involved: >>>>>>>> >>>>>>>> 1. Create a temporary featuresource 2. Create a temporary layer to >>>>>>>> display the features 3. Insert the temporary layer into the runtime >>>>>>>> map >>>>>>>> >>>>>>>> The buffer files in the MapGuide viewer has template code for all >>>>>>>> three steps. >>>>>>>> All steps are explained in the Developer Guide (PDF version at >>>>>>>> least). >>>>>>>> >>>>>>>> You might also want to look here: >>>>>>>> http://trac.osgeo.org/mapguide/wiki/CodeSamples/ASP.Net/ScribbleApp >>>>>>>> >>>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Galois skrev: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> I´m trying to add a point to a map but I have no idea how to it. >>>>>>>>> >>>>>>>>> I have declare the map object, and also I create a point with it's >>>>>>>>> coordinates. >>>>>>>>> >>>>>>>>> But I don't know what is the next step that I have to do... >>>>>>>>> >>>>>>>>> The code follows.... >>>>>>>>> >>>>>>>>> >>>>>>>>> public partial class _Default : System.Web.UI.Page { >>>>>>>>> public string sessionId; >>>>>>>>> public string webLayout; >>>>>>>>> >>>>>>>>> protected void Page_Load(object sender, EventArgs e) >>>>>>>>> { >>>>>>>>> string physicalPath = @"C:\Program >>>>>>>>> Files\MapGuideOpenSource\WebServerExtensions\www\webconfig.ini"; >>>>>>>>> >>>>>>>>> try >>>>>>>>> { >>>>>>>>> MapGuideApi.MgInitializeWebTier(physicalPath); >>>>>>>>> >>>>>>>>> >>>>>>>>> passAndSession(); >>>>>>>>> >>>>>>>>> //Associate a session ID with the MgSiteConnection >>>>>>>>> Object >>>>>>>>> MgUserInformation userInfo_new = new >>>>>>>>> MgUserInformation(sessionId); >>>>>>>>> >>>>>>>>> MgSiteConnection siteConnection = new >>>>>>>>> MgSiteConnection(); >>>>>>>>> >>>>>>>>> siteConnection.Open(userInfo_new); >>>>>>>>> >>>>>>>>> MgResourceService resourceSrvc = >>>>>>>>> (MgResourceService)siteConnection.CreateService(MgServiceType.Reso >>>>>>>>> u >>>>>>>>> rceService); >>>>>>>>> >>>>>>>>> >>>>>>>>> MgMap map = new MgMap(siteConnection); >>>>>>>>> >>>>>>>>> webLayout = >>>>>>>>> "Library://GoSpatial/Web+Layouts/Autostrada+Brescia+Padova+Map.Web >>>>>>>>> L >>>>>>>>> ayout"; >>>>>>>>> >>>>>>>>> MgResourceIdentifier resId = new >>>>>>>>> MgResourceIdentifier("Library://GoSpatial/Maps/Italy >>>>>>>>> Map.MapDefinition"); >>>>>>>>> >>>>>>>>> String mapName = resId.GetName(); >>>>>>>>> >>>>>>>>> MgResourceIdentifier mapStateId = new >>>>>>>>> MgResourceIdentifier("Session:" + sessionId + "//" + mapName + "." >>>>>>>>> + MgResourceType.Map); >>>>>>>>> >>>>>>>>> map.Create(resourceSrvc, resId, mapName); >>>>>>>>> >>>>>>>>> map.Save(resourceSrvc, mapStateId); >>>>>>>>> >>>>>>>>> map.Open(resourceSrvc, mapName); >>>>>>>>> >>>>>>>>> createPoint(); >>>>>>>>> >>>>>>>>> >>>>>>>>> } >>>>>>>>> catch (Exception ex) >>>>>>>>> { >>>>>>>>> throw (ex); >>>>>>>>> } >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> public string passAndSession() >>>>>>>>> { >>>>>>>>> MgUserInformation userInfo = new >>>>>>>>> MgUserInformation("Administrator", >>>>>>>>> "admin"); >>>>>>>>> >>>>>>>>> MgSite site = new MgSite(); >>>>>>>>> >>>>>>>>> site.Open(userInfo); >>>>>>>>> >>>>>>>>> sessionId = site.CreateSession(); >>>>>>>>> return sessionId; >>>>>>>>> } >>>>>>>>> >>>>>>>>> public MgPoint createPoint() >>>>>>>>> { >>>>>>>>> MgGeometryFactory geometryFactory = new >>>>>>>>> MgGeometryFactory(); >>>>>>>>> >>>>>>>>> MgCoordinateXY coordinate = (MgCoordinateXY) >>>>>>>>> geometryFactory.CreateCoordinateXY(10.913161, 45.408046); >>>>>>>>> >>>>>>>>> MgPoint point = geometryFactory.CreatePoint(coordinate); >>>>>>>>> return point; >>>>>>>>> } >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> mapguide-users mailing list >>>>>>>> mapguide-users@lists.osgeo.org >>>>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> _______________________________________________ >>>>>> mapguide-users mailing list >>>>>> mapguide-users@lists.osgeo.org >>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>>> >>>>>> >>>>>> >>>>>> >>>>> -- >>>>> View this message in context: >>>>> http://www.nabble.com/Adding-a-point-to-a-map...-PLZ-Help%21%21%21-%28 >>>>> .NET-- >>>>> -C-%29-tp19954532p19994399.html >>>>> Sent from the MapGuide Users mailing list archive at Nabble.com. >>>>> >>>>> _______________________________________________ >>>>> mapguide-users mailing list >>>>> mapguide-users@lists.osgeo.org >>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>> >>>>> __________ Information from ESET NOD32 Antivirus, version of virus >>>>> signature database 3523 (20081015) __________ >>>>> >>>>> The message was checked by ESET NOD32 Antivirus. >>>>> >>>>> http://www.eset.com >>>>> >>>>> >>>>> _______________________________________________ >>>>> mapguide-users mailing list >>>>> mapguide-users@lists.osgeo.org >>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>> >>>>> >>>>> >>>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/Adding-a-point-to-a-map...-PLZ-Help%21%21%21-%28.NET-- >>>> -C-%29-tp19954532p19994711.html >>>> Sent from the MapGuide Users mailing list archive at Nabble.com. >>>> >>>> _______________________________________________ >>>> mapguide-users mailing list >>>> mapguide-users@lists.osgeo.org >>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>> >>>> __________ Information from ESET NOD32 Antivirus, version of virus >>>> signature >>>> database 3523 (20081015) __________ >>>> >>>> The message was checked by ESET NOD32 Antivirus. >>>> >>>> http://www.eset.com >>>> >>>> >>>> _______________________________________________ >>>> mapguide-users mailing list >>>> mapguide-users@lists.osgeo.org >>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>> >>>> >>> _______________________________________________ >>> mapguide-users mailing list >>> mapguide-users@lists.osgeo.org >>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>> >>> >>> >> >> > > _______________________________________________ > mapguide-users mailing list > mapguide-users@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/mapguide-users > > -- View this message in context: http://www.nabble.com/Adding-a-point-to-a-map...-PLZ-Help%21%21%21-%28.NET---C-%29-tp19954532p20010407.html Sent from the MapGuide Users mailing list archive at Nabble.com. _______________________________________________ mapguide-users mailing list mapguide-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapguide-users