Daha çox

Həqiqi enlem və boylam dəyərlərindən bir nöqtə necə qurulur


Proqramımın bir mərkəzi nöqtəsi və bir hərəkətli obyekti var. Hal-hazırda bu nöqtə Avropanın bir yerindədir, amma indi bu nöqtəni enlem və boylam dəyərlərindən dəyişdirməliyəm (Avstraliya). Zəhmət olmasa bu proqrama baxın. həmin proqramdan proqramı işləyə bilərdim.

KOD HİSSƏSİ '

Sistemdən istifadə; System.Collections.Generic istifadə; System.ComponentModel istifadə edərək; System.Data istifadə edərək; System.Drawing istifadə; System.Text istifadə edərək; System.Windows.Forms istifadə edərək; GeoAPI.Geometries istifadə; NetTopologySuite.Geometries istifadə edərək; SharpMap.Layers istifadə; SharpMap.Data istifadə edərək; SharpMap.Styles istifadə edərək; SharpMap.Rendering.Thematics istifadə etmək; BruTile.Web istifadə edərək; WindowsFormsApplication1.Properties istifadə; #ifr GeometryTransform istifadə DotSpatialProjections = DotSpatial.Projections.GeometryTransform; #else istifadə edərək GeometryTransform = GeoAPI.CoordinateSystems.Transformations.GeometryTransform; #endif ad sahəsi WindowsFormsApplication1 {ümumi qismən sinif FormMovingObjectOverTileLayer: Form {şəxsi siyahı geos = yeni Siyahı(); xüsusi bool movingUp = true; xüsusi bool movingLeft = true; GeoAPI.Geometries.Koordinat mövqeyi; public FormMovingObjectOverTileLayer () {InitializeComponent (); this.SetStyle (ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, doğru); this.UpdateStyles (); } xüsusi boşluq FormMovingObjectOverTileLayer_Load (obyekt göndərən, EventArgs e) {// Lissabon… #if DotSpatialProjections var mathTransform = LayerTools.Wgs84toGoogleMercator; var geom = GeometryTransform.TransformBox (yeni zərf (-9.205626, -9.123736, 38.690993, 38.740837), mathTransform.Source, mathTransform.Target); #else var mathTransform = LayerTools.Wgs84toGoogleMercator.MathTransform; GeoAPI.Geometries.Envelope geom = GeometryTransform.TransformBox (yeni zərf (-9.205626, -9.123736, 38.690993, 38.740837), mathTransform); #endif // Google Background TileAsyncLayer layer2 = yeni TileAsyncLayer (yeni OsmTileSource (), "TileLayer - OSM"); this.mapBox1.Map.BackgroundLayer.Add (layer2); var gf = yeni GeometryFactory (yeni PrecisionModel (), 3857); // Statik bir qat əlavə edir var staticLayer = yeni VectorLayer ("Sabit İşarə"); // position = geom.GetCentroid (); var aux = yeni Siyahı(); aux.Add (gf.CreatePoint (geom.Centre)); staticLayer.Style.Symbol = Resources.PumpSmall; var geoProviderFixed = yeni SharpMap.Data.Providers.GeometryProvider (aux); staticLayer.DataSource = geoProviderFixed; this.mapBox1.Map.Layers.Add (staticLayer); // Hərəkət edən dəyişən qat əlavə edir VectorLayer pushPinLayer = yeni VectorLayer ("PushPins"); mövqe = geom.Centre; geos.Add (gf.CreatePoint (mövqe)); pushPinLayer.Style.Symbol = Resources.ZoomToExtents1; var geoProvider = yeni SharpMap.Data.Providers.GeometryProvider (geos); pushPinLayer.DataSource = geoProvider; this.mapBox1.Map.VariableLayers.Add (pushPinLayer); this.mapBox1.Map.ZoomToBox (geom); this.mapBox1.Refresh (); } xüsusi boşluq timer1_Tick (obyekt göndərən, EventArgs e) {double dx, dy; əgər (movingLeft) dx = -100; başqa dx = 100; əgər (movingUp) dy = 100; başqa dy = -100; mövqe.X = mövqe.X + dx; mövqe.Y = mövqe.Y + dy; əgər (position.X  this.mapBox1.Map.Envelope.MaxX) movingLeft = true; əgər (mövqe.Y  this.mapBox1.Map.Envelope.MaxY) movingUp = false; VariableLayerCollection.TouchTimer (); //this.mapBox1.Refresh (); } xüsusi boşluq button4_Click (obyekt göndərən, EventArgs e) {this.timer1.Enabled = true; } xüsusi boşluq button1_Click (obyekt göndərən, EventArgs e) {this.timer1.Enabled = false; } xüsusi boşluq Form2_SizeChanged (obyekt göndərən, EventArgs e) {this.mapBox1.Refresh (); } xüsusi boşluq FormMovingObjectOverTileLayer_FormClosing (obyekt göndərən, FormClosingEventArgs e) {this.timer1.Stop (); }}} '

DotSpatial istifadə etdiyinizə bənzəyir.

Bənzər bir sual və cavab: DotSpatial istifadə edərək koordinasiya çevrilmə / reprojeksiyon

Kitabxana sənədləri belə görünür: http://www.mapwindow.org/downloads/documentation/dotspatial-1.0/html/66de9da3-2eda-7ca5-9ee5-e9b8a76f8392.htm