When the viewer starts up, it does the following:
1. Create a new session. This implies creating a temporary empty repository
2. "Compile" information from the Library respository, regarding the map (such as feature source names, etc) into a binary format. 3. Store this binary version in the session repository, at the root, using the MapDefintion name as the name.
4. Display the map.

When you start by calling the "CreateSession()", you redo step 1, and thus have no runtime map.
When you call "map.Create()", you replicate step 2 and 3.

This makes the two maps decoupled, and thus any changes to one is not visible in the other.

You must login using the SessionID, obtained from the viewer, not with username/password.
As for naming, it usually creates a bit of confusion.
If you MapDefinition has the path Library://myfolder1/myfolder2/MyMap.MapDefinition, it becomes Session:<session-id>//MyMap.Map. If you need to modify a layer, you can copy it into the session repository, and change the runtime map to point at the session path instead.

As for the feature reader, you might have to prefix the schema with the schema name, like "SDF_2:Voting".

Regards, Kenneth, GEOGRAF A/S



Áron Deák skrev:
Hello everybody,

I am new to mapguide. I am writing a java thick client map application using MapGuide Open Source as map server. I query images from the map server, this part works pretty well, not fast enought tough.

My problem is that I also need to be able to read the feature data in order to be able to provide some simplified geocoding service as well, but I can't get the feature reader to work, I also need the tile service because rendering images takes a lot of time and even implementing tile caching in the program is not enough, so I would like to use MapGuide's tile service as well reading tile data through MgByteReader in a similar way as reading arbitrary sized images.

I have problem running even the simplest sample codes, eg. map.Open() function throws an exception so I have to use map.Create() to open a map and I am thinking that this might be the root of my problems.

Here is how my code works: (simplified) I have followed instruction from the GettingStartedGuide.pdf to the letter when installing the MapGuide server

try {
            MapGuideJavaApi.MgInitializeWeb
Tier("C:\\webconfig.ini");
MgUserInformation userInfo = new MgUserInformation("Anonymous", "");
            mapDefid = new MgResourceIdentifier(
            "Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition");
            MgSite site = new MgSite();
            site.Open(userInfo);
            String sessionId = site.CreateSession();
            site.Close();
            MgSiteConnection siteConnection = new MgSiteConnection();
            siteConnection.Open(userInfo);
            MgResourceService service = (MgResourceService) siteConnection
                    .CreateService(MgServiceType.ResourceService);
            MgMap map;
            map = new MgMap();
MgRenderingService renderingService = (MgRenderingService) siteConnection
                    .CreateService(MgServiceType.RenderingService);
MgFeatureService featureService = (MgFeatureService) siteConnection
                    .CreateService(MgServiceType.FeatureService);
            MgTileService tileService = (MgTileService) siteConnection
                    .CreateService(MgServiceType.TileService);
MgResourceService resourceService = (MgResourceService) siteConnection
                    .CreateService(MgServiceType.ResourceService);
            map.Create(resourceService, mapDefid, "MyMap");
            /**
             * Opening map throws exception
             */
    //        map.Open(resourceService, "Sheboygan");
            MgResourceIdentifier districtsId = new MgResourceIdentifier(
"Library://Samples/Sheboygan/Data/VotingDistricts.FeatureSource");
            /**
             * Selecting features throws exception
             */
// featureService.SelectFeatures(districtsId, "VotingDistricts",
//                     new MgFeatureQueryOptions(), "Sheboygan");
            /**
* Reading a certain area of the map as an image file stream works fine
             */
            MgByteReader reader = this.mapGuideResourceManager
            .getRenderingService().RenderMap(map,
                    this.mapGuideResourceManager.getSelection(), env,
                    (int) renderSpec.getImageSize().getWidth(),
                    (int) renderSpec.getImageSize().getHeight(),
                    new MgColor((short) 0, (short) 0, (short) 0xff),
                    "JPG");
        } catch (MgException ex) {
            ex.printStackTrace();
        }

Any help or ideas would be appreciated, now I am stuck with the development because of these problems.

Thanks,

aron deak
------------------------------------------------------------------------

_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users

Reply via email to