namespace Mapbox.Unity.Map { using System.Collections; using Assets.Scenes.Ride.Scripts; using Assets.Scripts.Apis; using Assets.Scripts.Apis.Models; using Mapbox.Unity.Location; 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; //_map.Initialize(location.LatitudeLongitude, _map.AbsoluteZoom); var mainController = transform.parent.GetComponent(); if (mainController != null) { //初始化map var point = mainController.GetCenterCoordinate(); _map.Initialize(new Utils.Vector2d(point[0], point[1]), _map.AbsoluteZoom); } } } }