powerfun-unity/Assets/Mapbox/Unity/Map/InitializeMapWithLocationProvider.cs

45 lines
1.2 KiB
C#
Raw Normal View History

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;
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);
var mainController = transform.parent.GetComponent<MainController>();
if (mainController != null)
2021-03-23 16:07:31 +08:00
{
//初始化map
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
}
}
}