You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
namespace Mapbox.Unity.Location
|
|
{
|
|
using System;
|
|
using Mapbox.Unity.Utilities;
|
|
using Mapbox.Utils;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// The EditorLocationProvider is responsible for providing mock location and heading data
|
|
/// for testing purposes in the Unity editor.
|
|
/// </summary>
|
|
public class LocationArrayEditorLocationProvider : AbstractEditorLocationProvider
|
|
{
|
|
/// <summary>
|
|
/// The mock "latitude, longitude" location, respresented with a string.
|
|
/// You can search for a place using the embedded "Search" button in the inspector.
|
|
/// This value can be changed at runtime in the inspector.
|
|
/// </summary>
|
|
[SerializeField]
|
|
[Geocode]
|
|
string[] _latitudeLongitude;
|
|
|
|
/// <summary>
|
|
/// The mock heading value.
|
|
/// </summary>
|
|
[SerializeField]
|
|
[Range(0, 359)]
|
|
float _heading;
|
|
|
|
|
|
private int idx = -1;
|
|
Vector2d LatitudeLongitude
|
|
{
|
|
get
|
|
{
|
|
idx++;
|
|
// reset index to keep looping through the location array
|
|
if (idx >= _latitudeLongitude.Length) { idx = 0; }
|
|
return Conversions.StringToLatLon(_latitudeLongitude[idx]);
|
|
}
|
|
}
|
|
|
|
protected override void SetLocation()
|
|
{
|
|
_currentLocation.UserHeading = _heading;
|
|
_currentLocation.LatitudeLongitude = LatitudeLongitude;
|
|
_currentLocation.Accuracy = _accuracy;
|
|
_currentLocation.Timestamp = UnixTimestampUtils.To(DateTime.UtcNow);
|
|
_currentLocation.IsLocationUpdated = true;
|
|
_currentLocation.IsUserHeadingUpdated = true;
|
|
}
|
|
}
|
|
}
|
|
|