2021-03-22 19:20:51 +08:00
|
|
|
|
namespace Mapbox.Unity.Map
|
|
|
|
|
|
{
|
|
|
|
|
|
using System.Collections;
|
2021-03-23 16:07:31 +08:00
|
|
|
|
using Assets.Scenes.Ride.Scripts;
|
|
|
|
|
|
using Assets.Scripts.Apis;
|
2021-03-25 16:22:09 +08:00
|
|
|
|
using Assets.Scripts.Apis.Models;
|
2021-03-23 16:07:31 +08:00
|
|
|
|
using Mapbox.Unity.Location;
|
2021-03-22 19:20:51 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
public class InitializeMapWithLocationProvider : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
[SerializeField]
|
|
|
|
|
|
AbstractMap _map;
|
|
|
|
|
|
|
|
|
|
|
|
ILocationProvider _locationProvider;
|
|
|
|
|
|
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Prevent double initialization of the map.
|
|
|
|
|
|
_map.InitializeOnStart = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected virtual IEnumerator Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
yield return null;
|
|
|
|
|
|
_locationProvider = LocationProviderFactory.Instance.DefaultLocationProvider;
|
|
|
|
|
|
_locationProvider.OnLocationUpdated += LocationProvider_OnLocationUpdated; ;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void LocationProvider_OnLocationUpdated(Unity.Location.Location location)
|
|
|
|
|
|
{
|
|
|
|
|
|
_locationProvider.OnLocationUpdated -= LocationProvider_OnLocationUpdated;
|
2021-03-23 16:07:31 +08:00
|
|
|
|
//_map.Initialize(location.LatitudeLongitude, _map.AbsoluteZoom);
|
2021-03-25 16:22:09 +08:00
|
|
|
|
|
|
|
|
|
|
var mainController = transform.parent.GetComponent<MainController>();
|
|
|
|
|
|
if (mainController != null)
|
2021-03-23 16:07:31 +08:00
|
|
|
|
{
|
|
|
|
|
|
//初始化map
|
2021-03-25 16:22:09 +08:00
|
|
|
|
var point = mainController.GetCenterCoordinate();
|
2021-03-23 16:07:31 +08:00
|
|
|
|
_map.Initialize(new Utils.Vector2d(point[0], point[1]), _map.AbsoluteZoom);
|
|
|
|
|
|
}
|
2021-03-22 19:20:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|