DSP and web service

Jul 14, 2011 at 2:16 PM

Hello,

I am trying to include an image from a web service or web utility such as EarthExplorer.
Is that possiable and how to call that utility from web into my DSP application.
Can someone give me a tip into right direction.

Thanks for help and Regards!

Editor
Jul 15, 2011 at 1:51 PM

have a look at http://dotspatial.codeplex.com/discussions/238631

Hth FObermaier

Jul 15, 2011 at 3:35 PM

Thanks FObermaier, for showing me the way. Regards, Vojko

Jul 19, 2011 at 6:29 PM

Hi FObermaier!

I applied successfully BruTile with this command:

              BruTileLayer btlAerial = DotSpatial.Controls.BruTileLayer.CreateOsmLayer();
              map1.Layers.Add(btlAerial);

Projection of my vector layer is supplied with PRJ file:

 PROJCS["Slovenia 1996 / Slovene National Grid",GEOGCS["Slovenia 1996",DATUM["D_Slovenia_Geodetic_Datum_1996",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],UNIT["Meter",1]]


What to do to find my vector data in the right position on OSM image added with BruTile?

Cheers vzavec.

Editor
Jul 19, 2011 at 9:41 PM
Edited Jul 19, 2011 at 9:52 PM

your vector layer should expose a Reproject function that takes a ProjectionInfo as argument, so you need to call

myVectorLayer.Reproject(btlAerial.Projection);

Hth FObermaier

Jul 20, 2011 at 12:13 PM

Hi FObermaier!

Please see my piece of program inside buttonclick. Reprojecting my vectors layer moves the previous location from Sao Tome near west coast od Africa to central Europe,
where Slovenia is located but this is stil about 25 kilometers south from the desired location.

        private void button2_Click(object sender, EventArgs e)
        {
 // add brutile OSM map to the map and legend
            BruTileLayer btlAerial = DotSpatial.Controls.BruTileLayer.CreateOsmLayer();
      
 // reading the map projectinfo
            ProjectionInfo btlinfo = new ProjectionInfo();
            btlinfo = btlAerial.Projection;

            map1.Layers.Add(btlAerial);

           
            // add my vectors
            FeatureSet lines = new FeatureSet();
            lines.Open(@"C:\mapgis\Shp\cev_plin.shp");
            IMapFeatureLayer ll = map1.Layers.Add(lines);

 // reproject my vectors layer               
            ll.Reproject(btlinfo);
 
        }


If this is somehow important I have one known coordinate location inside Slovenia defined as

 Y:461220, X:104376

The desired result is:

 14°29'37.6''    46°4'56.7''


Best regards, vzavec

Editor
Jul 20, 2011 at 12:52 PM

This is not a problem of the BruTile layer, it is a problem of DotSpatial.Projections.

Raise an issue here on the codeplex site.

You might get away with reprojecting your shapefile beforehand using some tool like ogr2ogr, QGis etc.

Hth FObermaier