Suite

Comment faire un point à partir des valeurs réelles de latitude et de longitude

Comment faire un point à partir des valeurs réelles de latitude et de longitude


Mon programme a un point central et un objet en mouvement. En ce moment, ce point se trouve quelque part en Europe. Mais maintenant, je dois changer ce point des valeurs de latitude et de longitude (de l'Australie). Veuillez consulter ce programme . à partir de ce programme, je pourrais faire fonctionner le programme.

CODE PARTIE'

en utilisant le système ; en utilisant System.Collections.Generic ; en utilisant System.ComponentModel ; en utilisant System.Data; en utilisant System.Drawing; en utilisant System.Text; en utilisant System.Windows.Forms ; en utilisant GeoAPI.Geometries ; en utilisant NetTopologySuite.Geometries ; en utilisant SharpMap.Layers; en utilisant SharpMap.Data; en utilisant SharpMap.Styles; en utilisant SharpMap.Rendering.Thematics; en utilisant BruTile.Web ; en utilisant WindowsFormsApplication1.Properties ; #if DotSpatialProjections using GeometryTransform = DotSpatial.Projections.GeometryTransform; #else using GeometryTransform = GeoAPI.CoordinateSystems.Transformations.GeometryTransform; #endif espace de noms WindowsFormsApplication1 { classe partielle publique FormMovingObjectOverTileLayer : Form { liste privée geos = nouvelle liste(); private bool movingUp = true; private bool movingLeft = true; GeoAPI.Geometries.Position des coordonnées ; public FormMovingObjectOverTileLayer() { InitializeComponent(); this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true); this.UpdateStyles(); } private void FormMovingObjectOverTileLayer_Load(objet expéditeur, EventArgs e) { //Lisbonne… #if DotSpatialProjections var mathTransform = LayerTools.Wgs84toGoogleMercator; var geom = GeometryTransform.TransformBox( new Envelope(-9.205626, -9.123736, 38.690993, 38.740837), mathTransform.Source, mathTransform.Target); #else var mathTransform = LayerTools.Wgs84toGoogleMercator.MathTransform; GeoAPI.Geometries.Envelope geom = GeometryTransform.TransformBox( new Envelope(-9.205626, -9.123736, 38.690993, 38.740837), mathTransform); #endif //Google Background TileAsyncLayer layer2 = new TileAsyncLayer(new OsmTileSource(), "TileLayer - OSM"); this.mapBox1.Map.BackgroundLayer.Add(layer2) ; var gf = new GeometryFactory(new PrecisionModel(), 3857); //Ajoute un calque statique var staticLayer = new VectorLayer("Fixed Marker"); //position = geom.GetCentroid(); var aux = nouvelle liste(); aux.Add(gf.CreatePoint(geom.Centre)); staticLayer.Style.Symbol = Resources.PumpSmall; var geoProviderFixed = new SharpMap.Data.Providers.GeometryProvider(aux); staticLayer.DataSource = geoProviderFixed; this.mapBox1.Map.Layers.Add(staticLayer); //Ajoute une couche variable en mouvement VectorLayer pushPinLayer = new VectorLayer("PushPins"); position = geom.Centre; geos.Add(gf.CreatePoint(position)); pushPinLayer.Style.Symbol = Resources.ZoomToExtents1; var geoProvider = new SharpMap.Data.Providers.GeometryProvider(geos); pushPinLayer.DataSource = geoProvider; this.mapBox1.Map.VariableLayers.Add(pushPinLayer); this.mapBox1.Map.ZoomToBox(geom); this.mapBox1.Refresh(); } private void timer1_Tick (expéditeur d'objet, EventArgs e) { double dx, dy; si (movingLeft) dx = -100 ; sinon dx = 100 ; si (movingUp) dy = 100 ; sinon dy = -100 ; position.X = position.X + dx; position.Y = position.Y + dy; if (position.X < this.mapBox1.Map.Envelope.MinX) movingLeft = false; else if (position.X > this.mapBox1.Map.Envelope.MaxX) movingLeft = true; if (position.Y < this.mapBox1.Map.Envelope.MinY) movingUp = true; else if (position.Y > this.mapBox1.Map.Envelope.MaxY) movingUp = false; VariableLayerCollection.TouchTimer(); //this.mapBox1.Refresh(); } private void button4_Click(object sender, EventArgs e) { this.timer1.Enabled = true; } private void button1_Click(object sender, EventArgs e) { this.timer1.Enabled = false; } private void Form2_SizeChanged (expéditeur d'objet, EventArgs e) { this.mapBox1.Refresh(); } void privé FormMovingObjectOverTileLayer_FormClosing (expéditeur d'objet, FormClosingEventArgs e) { this.timer1.Stop(); } } } '

Il semble que vous utilisiez DotSpatial.

Voici une question et une réponse similaires : Coordonner la transformation/reprojection à l'aide de DotSpatial

Cela ressemble à la documentation de la bibliothèque : http://www.mapwindow.org/downloads/documentation/dotspatial-1.0/html/66de9da3-2eda-7ca5-9ee5-e9b8a76f8392.htm