Koordináta műveletek

Kiegészítő
Xam.Plugin.Geolocator
 
Figyelem
Plugin.Permissions és Plugin.CurrentActivity kiegészítőkre is épül, így ezek feltelepítése és beállítása is kötelező!
 
Hivatkozás
using Plugin.Geolocator;
using Plugin.Geolocator.Abstractions;
 
Módosítások Android esetén 
- Projekt.Android > Properties > Assembly.info fájl végén
[assembly: UsesFeature("android.hardware.location", Required = false)]
[assembly: UsesFeature("android.hardware.location.gps", Required = false)]
[assembly: UsesFeature("android.hardware.location.network", Required = false)]
 
Módosítások iOS esetén
- Projekt.iOS > info.plist fájlon belül
<key>NSLocationWhenInUseUsageDescription</key>
<string>Az alkalmazás működéséhez kérem engedélyezze a helyadatok elérését!</string>
 
Koordináta lekérdezése
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 10;
Position position = await locator.GetPositionAsync(TimeSpan.FromSeconds(20), null, true);
if (position!=null)
{
    double latitude = position.Latitude; // Szélesség
    double longitude = position.Longitude; // Hosszúság
    double speed = position.Speed; // Sebesség
    double accuracy = position.Accuracy; // Pontosság
    double heading = position.Heading; // Irány
    double altitude = position.Altitude; // Magasság
    double altitudeAccuracy = position.AltitudeAccuracy; // Magasság pontossága
    DateTimeOffset timestamp = position.Timestamp; // Lekérdezés időbélyege
    await DisplayAlert("Figyelem", "Aktuális koordináta: " + latitude + "," + longitude,"OK");
} else {
    await DisplayAlert("Figyelem", "Sikertelen koordináta lekérdezés", "OK");
}
- DesiredAccuracy esetén a kívánt pontosság méterben
- GetPositionAsync esetén: 
    1) Mennyi ideig keressen koordinátát.
    2) Lemondási token.
    3) Heading-et is kérdezze le.
 
EGYÉB, NEM A GEOLOCATOR MODULHOZ KÖTŐDŐ DOLGOK
 
Címhez tartozó koordináta lekérdezése
using System.Linq
using Xamarin.Essentials;
 
var locations = await Geocoding.GetLocationsAsync("3530 Miskolc, Petőfi Sándor utca 1.");
var location = locations?.FirstOrDefault();
if (location != null)
{
    await DisplayAlert("Figyelem", "Megadott címhez tartozó koordináta: " + location.Latitude + "," + location.Longitude, "OK");
}
 
Google térkép esetén az aktuális pozíció gomb elhelyezése
Xamarin.Forms.GoogleMaps;
using Xamarin.Forms.GoogleMaps;
- Megvalósítás
GoogleMap.MyLocationEnabled = true;
GoogleMap.UiSettings.MyLocationButtonEnabled = true;
- Előtte kötelezően engedélyeztetni kell a felhasználóval a koordináták elérését
 
Koordináták közötti távolság lekérdezése
using Xamarin.Essentials;
Location start = new Location(start_latitude, start_longitude);
Location end = new Location(end_latitude, end_longitude);
double distance = Location.CalculateDistance(start, end, DistanceUnits.Kilometers);
 

 

Mobilos kategóriák: