diff --git a/dependencies/Mapbox.Json/Net35/Mapbox.Json.dll.meta b/dependencies/Mapbox.Json/Net35/Mapbox.Json.dll.meta
index acdf34b33..80f949772 100644
--- a/dependencies/Mapbox.Json/Net35/Mapbox.Json.dll.meta
+++ b/dependencies/Mapbox.Json/Net35/Mapbox.Json.dll.meta
@@ -48,10 +48,6 @@ PluginImporter:
enabled: 1
settings:
CPU: AnyCPU
- Android:
- enabled: 1
- settings:
- CPU: AnyCPU
Win64:
enabled: 1
settings:
diff --git a/dependencies/mapbox-sdk-cs b/dependencies/mapbox-sdk-cs
index a41e0a5d1..558cb770a 160000
--- a/dependencies/mapbox-sdk-cs
+++ b/dependencies/mapbox-sdk-cs
@@ -1 +1 @@
-Subproject commit a41e0a5d16030d022d1d407c535854ac47f84747
+Subproject commit 558cb770ade50ff737bf4d6001b88af6e68578ba
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/Location/TransformLocationProvider.cs b/sdkproject/Assets/Mapbox/Core/Unity/Location/TransformLocationProvider.cs
index 3a8b6e2d5..58d889f8d 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/Location/TransformLocationProvider.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/Location/TransformLocationProvider.cs
@@ -14,6 +14,9 @@ namespace Mapbox.Unity.Location
///
public class TransformLocationProvider : MonoBehaviour, ILocationProvider
{
+ [SerializeField]
+ private MapController _mapController;
+
///
/// The transform that will be queried for location and heading data.
///
@@ -70,11 +73,11 @@ void Update()
Vector2d GetLocation()
{
- if (MapController.ReferenceTileRect == null)
+ if (_mapController.WorldParameters.ReferenceTileRect == null)
{
return LocationProviderFactory.Instance.DefaultLocationProvider.Location;
}
- return _targetTransform.GetGeoPosition(MapController.ReferenceTileRect.Center, MapController.WorldScaleFactor);
+ return _targetTransform.GetGeoPosition(_mapController.WorldParameters.ReferenceTileRect.Center, _mapController.WorldParameters.WorldScaleFactor);
}
}
}
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/DirectionsFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/DirectionsFactory.cs
index cfa365d9f..f99f2fbb5 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/DirectionsFactory.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/DirectionsFactory.cs
@@ -18,15 +18,20 @@ public class DirectionsFactory : Factory
private Directions _directions;
public List MeshModifiers;
- public override void Initialize(IFileSource fileSource)
+ public override void Initialize(IFileSource fileSource, WorldParameters parameters)
{
- base.Initialize(fileSource);
+ base.Initialize(fileSource, parameters);
_directions = MapboxAccess.Instance.Directions;
}
- public void Query(List waypoints)
+ public void Query(List waypoints)
{
- var _directionResource = new DirectionResource(waypoints.ToArray(), RoutingProfile.Driving);
+ var wp = new Vector2d[waypoints.Count];
+ for (int i = 0; i < waypoints.Count; i++)
+ {
+ wp[i] = waypoints[i].GetGeoPosition(Parameters.ReferenceTileRect.Center, Parameters.WorldScaleFactor);
+ }
+ var _directionResource = new DirectionResource(wp, RoutingProfile.Driving);
_directionResource.Steps = true;
_directions.Query(_directionResource, HandleDirectionsResponse);
}
@@ -39,7 +44,7 @@ void HandleDirectionsResponse(DirectionsResponse response)
{
foreach (var point in response.Routes[0].Geometry)
{
- meshData.Vertices.Add(Conversions.GeoToWorldPosition(point.x, point.y, MapController.ReferenceTileRect.Center, MapController.WorldScaleFactor).ToVector3xz());
+ meshData.Vertices.Add(Conversions.GeoToWorldPosition(point.x, point.y, Parameters.ReferenceTileRect.Center, Parameters.WorldScaleFactor).ToVector3xz());
}
}
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/Factory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/Factory.cs
index b473599ab..ee69bb76c 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/Factory.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/Factory.cs
@@ -9,11 +9,15 @@ namespace Mapbox.Unity.MeshGeneration.Factories
///
public class Factory : ScriptableObject
{
+ //private IWorldParameter MapVisualization;
protected IFileSource FileSource;
+ protected WorldParameters Parameters;
- public virtual void Initialize(IFileSource fileSource)
+ public virtual void Initialize(IFileSource fileSource, WorldParameters parameters)
{
+ //MapVisualization = vis;
FileSource = fileSource;
+ Parameters = parameters;
}
public virtual void Register(UnityTile tile)
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MapImageFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MapImageFactory.cs
index accabd0f3..821077a20 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MapImageFactory.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MapImageFactory.cs
@@ -41,9 +41,9 @@ public class MapImageFactory : Factory
private Dictionary _tiles;
- public override void Initialize(IFileSource fs)
+ public override void Initialize(IFileSource fs, WorldParameters parameters)
{
- base.Initialize(fs);
+ base.Initialize(fs, parameters);
_tiles = new Dictionary();
}
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs
index 9665bb367..cd7611a38 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs
@@ -1,108 +1,130 @@
-namespace Mapbox.Unity.MeshGeneration.Factories {
- using System.Collections.Generic;
- using UnityEngine;
- using Mapbox.Unity.MeshGeneration.Enums;
- using Mapbox.Unity.MeshGeneration.Data;
- using Mapbox.Unity.MeshGeneration.Interfaces;
- using Mapbox.Platform;
+namespace Mapbox.Unity.MeshGeneration.Factories
+{
+ using System.Collections.Generic;
+ using UnityEngine;
+ using Mapbox.Unity.MeshGeneration.Enums;
+ using Mapbox.Unity.MeshGeneration.Data;
+ using Mapbox.Unity.MeshGeneration.Interfaces;
+ using Mapbox.Platform;
- ///
- /// Uses vector tile api to visualize vector data.
- /// Fetches the vector data for given tile and passes layer data to layer visualizers.
- ///
- [CreateAssetMenu(menuName = "Mapbox/Factories/Mesh Factory")]
- public class MeshFactory : Factory {
- [SerializeField]
- private string _mapId = "";
- public List Visualizers;
+ ///
+ /// Uses vector tile api to visualize vector data.
+ /// Fetches the vector data for given tile and passes layer data to layer visualizers.
+ ///
+ [CreateAssetMenu(menuName = "Mapbox/Factories/Mesh Factory")]
+ public class MeshFactory : Factory
+ {
+ [SerializeField]
+ private string _mapId = "";
+ public List Visualizers;
- private Dictionary _tiles;
- private Dictionary> _layerBuilder;
+ private Dictionary _tiles;
+ private Dictionary> _layerBuilder;
- public void OnEnable() {
- if (Visualizers == null)
- Visualizers = new List();
- }
+ public void OnEnable()
+ {
+ if (Visualizers == null)
+ Visualizers = new List();
+ }
- ///
- /// Sets up the Mesh Factory
- ///
- ///
- public override void Initialize(IFileSource fs) {
- base.Initialize(fs);
- _tiles = new Dictionary();
- _layerBuilder = new Dictionary>();
- foreach (LayerVisualizerBase factory in Visualizers) {
- if (_layerBuilder.ContainsKey(factory.Key)) {
- _layerBuilder[factory.Key].Add(factory);
- } else {
- _layerBuilder.Add(factory.Key, new List() { factory });
- }
- }
- }
+ ///
+ /// Sets up the Mesh Factory
+ ///
+ ///
+ public override void Initialize(IFileSource fs, WorldParameters parameters)
+ {
+ base.Initialize(fs, parameters);
+ _tiles = new Dictionary();
+ _layerBuilder = new Dictionary>();
+ foreach (LayerVisualizerBase factory in Visualizers)
+ {
+ if (_layerBuilder.ContainsKey(factory.Key))
+ {
+ _layerBuilder[factory.Key].Add(factory);
+ }
+ else
+ {
+ _layerBuilder.Add(factory.Key, new List() { factory });
+ }
+ }
+ }
- public override void Register(UnityTile tile) {
- base.Register(tile);
- _tiles.Add(tile.TileCoordinate, tile);
- Run(tile);
- }
+ public override void Register(UnityTile tile)
+ {
+ base.Register(tile);
+ _tiles.Add(tile.TileCoordinate, tile);
+ Run(tile);
+ }
- ///
- /// Mesh Factory waits for both Height and Image data to be processed if they are requested
- ///
- ///
- private void Run(UnityTile tile) {
- if (tile.HeightDataState == TilePropertyState.Loading ||
- tile.ImageDataState == TilePropertyState.Loading) {
- tile.HeightDataChanged += HeightDataChangedHandler;
- tile.ImageDataChanged += ImageDataChangedHandler;
- } else {
- CreateMeshes(tile, null);
- }
- }
+ ///
+ /// Mesh Factory waits for both Height and Image data to be processed if they are requested
+ ///
+ ///
+ private void Run(UnityTile tile)
+ {
+ if (tile.HeightDataState == TilePropertyState.Loading ||
+ tile.ImageDataState == TilePropertyState.Loading)
+ {
+ tile.HeightDataChanged += HeightDataChangedHandler;
+ tile.ImageDataChanged += ImageDataChangedHandler;
+ }
+ else
+ {
+ CreateMeshes(tile, null);
+ }
+ }
- private void HeightDataChangedHandler(UnityTile t, object e) {
- if (t.ImageDataState != TilePropertyState.Loading)
- CreateMeshes(t, e);
- }
+ private void HeightDataChangedHandler(UnityTile t, object e)
+ {
+ if (t.ImageDataState != TilePropertyState.Loading)
+ CreateMeshes(t, e);
+ }
- private void ImageDataChangedHandler(UnityTile t, object e) {
- if (t.HeightDataState != TilePropertyState.Loading)
- CreateMeshes(t, e);
- }
+ private void ImageDataChangedHandler(UnityTile t, object e)
+ {
+ if (t.HeightDataState != TilePropertyState.Loading)
+ CreateMeshes(t, e);
+ }
- ///
- /// Fetches the vector data and passes each layer to relevant layer visualizers
- ///
- ///
- ///
- private void CreateMeshes(UnityTile tile, object e) {
- tile.HeightDataChanged -= HeightDataChangedHandler;
- tile.ImageDataChanged -= ImageDataChangedHandler;
+ ///
+ /// Fetches the vector data and passes each layer to relevant layer visualizers
+ ///
+ ///
+ ///
+ private void CreateMeshes(UnityTile tile, object e)
+ {
+ tile.HeightDataChanged -= HeightDataChangedHandler;
+ tile.ImageDataChanged -= ImageDataChangedHandler;
- var parameters = new Mapbox.Map.Tile.Parameters {
- Fs = this.FileSource,
- Id = new Mapbox.Map.CanonicalTileId(tile.Zoom, (int)tile.TileCoordinate.x, (int)tile.TileCoordinate.y),
- MapId = _mapId
- };
+ var parameters = new Mapbox.Map.Tile.Parameters
+ {
+ Fs = this.FileSource,
+ Id = new Mapbox.Map.CanonicalTileId(tile.Zoom, (int)tile.TileCoordinate.x, (int)tile.TileCoordinate.y),
+ MapId = _mapId
+ };
- var vectorTile = new Mapbox.Map.VectorTile();
- vectorTile.Initialize(parameters, () => {
- if (vectorTile.HasError) {
- Debug.Log(vectorTile.ExceptionsAsString);
- return;
- }
+ var vectorTile = new Mapbox.Map.VectorTile();
+ vectorTile.Initialize(parameters, () =>
+ {
+ if (vectorTile.HasError)
+ {
+ Debug.Log(vectorTile.ExceptionsAsString);
+ return;
+ }
- foreach (var layerName in vectorTile.Data.LayerNames()) {
- if (_layerBuilder.ContainsKey(layerName)) {
- foreach (var builder in _layerBuilder[layerName]) {
- if (builder.Active)
- builder.Create(vectorTile.Data.GetLayer(layerName), tile);
- }
- }
- }
- });
- }
- }
+ foreach (var layerName in vectorTile.Data.LayerNames())
+ {
+ if (_layerBuilder.ContainsKey(layerName))
+ {
+ foreach (var builder in _layerBuilder[layerName])
+ {
+ if (builder.Active)
+ builder.Create(vectorTile.Data.GetLayer(layerName), tile);
+ }
+ }
+ }
+ });
+ }
+ }
}
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/TerrainFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/TerrainFactory.cs
index bc286cc2f..4bf018d6b 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/TerrainFactory.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/TerrainFactory.cs
@@ -53,9 +53,9 @@ public class TerrainFactory : Factory
private Dictionary _tiles;
private Vector2 _stitchTarget;
- public override void Initialize(IFileSource fs)
+ public override void Initialize(IFileSource fs, WorldParameters parameters)
{
- base.Initialize(fs);
+ base.Initialize(fs, parameters);
_tiles = new Dictionary();
}
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapController.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapController.cs
index fa88cca0f..32c87552b 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapController.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapController.cs
@@ -8,14 +8,18 @@ namespace Mapbox.Unity.MeshGeneration
using Mapbox.Unity.Utilities;
using Utils;
+ public class WorldParameters
+ {
+ public RectD ReferenceTileRect;
+ public float WorldScaleFactor = 1;
+ }
+
///
/// MapController is just an helper class imitating the game/app logic controlling the map. It creates and passes the tiles requests to MapVisualization.
///
public class MapController : MonoBehaviour
{
- public static RectD ReferenceTileRect { get; set; }
- public static float WorldScaleFactor { get; set; }
-
+ public WorldParameters WorldParameters;
public MapVisualization MapVisualization;
public float TileSize = 100;
@@ -27,21 +31,37 @@ public class MapController : MonoBehaviour
public int Zoom;
public Vector4 Range;
- private GameObject _root;
+ public GameObject Root;
private Dictionary _tiles;
+ private Vector2 _refTile;
+
///
/// Resets the map controller and initializes the map visualization
///
- public void Awake()
+ public void Start()
{
- MapVisualization.Initialize(MapboxAccess.Instance);
+ var parm = LatLng.Split(',');
+ var v2 = Conversions.GeoToWorldPosition(double.Parse(parm[0]), double.Parse(parm[1]), new Vector2d(0, 0));
+ _refTile = Conversions.MetersToTile(v2, Zoom);
+ WorldParameters = new WorldParameters();
+ WorldParameters.ReferenceTileRect = Conversions.TileBounds(_refTile, Zoom);
+ if (Root != null)
+ {
+ foreach (Transform t in Root.transform)
+ {
+ Destroy(t.gameObject);
+ }
+ }
+
+ WorldParameters.WorldScaleFactor = (float)(TileSize / WorldParameters.ReferenceTileRect.Size.x);
+ Root = new GameObject("worldRoot");
+ Root.transform.localScale = Vector3.one * WorldParameters.WorldScaleFactor;
+
+ MapVisualization.Initialize(MapboxAccess.Instance, WorldParameters);
_tiles = new Dictionary();
- }
- public void Start()
- {
- Execute();
+ Execute();
}
///
@@ -55,7 +75,7 @@ public void Update()
RaycastHit rayhit;
if (Physics.Raycast(ray, out rayhit))
{
- _root.transform.position = new Vector3(0, -rayhit.point.y, 0);
+ Root.transform.position = new Vector3(0, -rayhit.point.y, 0);
_snapYToZero = false;
}
}
@@ -76,26 +96,9 @@ public void Execute()
/// Tiles to load around central tile in each direction; west-north-east-south
public void Execute(double lat, double lng, int zoom, Vector4 frame)
{
- //frame goes left-top-right-bottom here
- if (_root != null)
+ for (int i = (int)(_refTile.x - frame.x); i <= (_refTile.x + frame.z); i++)
{
- foreach (Transform t in _root.transform)
- {
- Destroy(t.gameObject);
- }
- }
-
- _root = new GameObject("worldRoot");
-
- var v2 = Conversions.GeoToWorldPosition(lat, lng, new Vector2d(0, 0));
- var tms = Conversions.MetersToTile(v2, zoom);
- ReferenceTileRect = Conversions.TileBounds(tms, zoom);
- WorldScaleFactor = (float)(TileSize / ReferenceTileRect.Size.x);
- _root.transform.localScale = Vector3.one * WorldScaleFactor;
-
- for (int i = (int)(tms.x - frame.x); i <= (tms.x + frame.z); i++)
- {
- for (int j = (int)(tms.y - frame.y); j <= (tms.y + frame.w); j++)
+ for (int j = (int)(_refTile.y - frame.y); j <= (_refTile.y + frame.w); j++)
{
var tile = new GameObject("Tile - " + i + " | " + j).AddComponent();
_tiles.Add(new Vector2(i, j), tile);
@@ -103,11 +106,13 @@ public void Execute(double lat, double lng, int zoom, Vector4 frame)
tile.RelativeScale = Conversions.GetTileScaleInMeters(0, Zoom) / Conversions.GetTileScaleInMeters((float)lat, Zoom);
tile.TileCoordinate = new Vector2(i, j);
tile.Rect = Conversions.TileBounds(tile.TileCoordinate, zoom);
- tile.transform.position = new Vector3((float)(tile.Rect.Center.x - ReferenceTileRect.Center.x), 0, (float)(tile.Rect.Center.y - ReferenceTileRect.Center.y));
- tile.transform.SetParent(_root.transform, false);
+ tile.transform.position = new Vector3((float)(tile.Rect.Center.x - WorldParameters.ReferenceTileRect.Center.x), 0, (float)(tile.Rect.Center.y - WorldParameters.ReferenceTileRect.Center.y));
+ tile.transform.SetParent(Root.transform, false);
MapVisualization.ShowTile(tile);
}
}
+
+ OnWorldCreated(Root);
}
public void Execute(double lat, double lng, int zoom, Vector2 frame)
@@ -131,17 +136,26 @@ public void Request(Vector2 pos, int zoom)
{
var tile = new GameObject("Tile - " + pos.x + " | " + pos.y).AddComponent();
_tiles.Add(pos, tile);
- tile.transform.SetParent(_root.transform, false);
+ tile.transform.SetParent(Root.transform, false);
tile.Zoom = zoom;
tile.TileCoordinate = new Vector2(pos.x, pos.y);
tile.Rect = Conversions.TileBounds(tile.TileCoordinate, zoom);
tile.RelativeScale = Conversions.GetTileScaleInMeters(0, Zoom) /
Conversions.GetTileScaleInMeters((float)Conversions.MetersToLatLon(tile.Rect.Center).x, Zoom);
- tile.transform.localPosition = new Vector3((float)(tile.Rect.Center.x - ReferenceTileRect.Center.x),
+ tile.transform.localPosition = new Vector3((float)(tile.Rect.Center.x - WorldParameters.ReferenceTileRect.Center.x),
0,
- (float)(tile.Rect.Center.y - ReferenceTileRect.Center.y));
+ (float)(tile.Rect.Center.y - WorldParameters.ReferenceTileRect.Center.y));
MapVisualization.ShowTile(tile);
}
}
+
+
+ public delegate void MapControllerEventArgs(MapController sender, GameObject root);
+ public event MapControllerEventArgs WorldCreated;
+ protected virtual void OnWorldCreated(GameObject root)
+ {
+ var handler = WorldCreated;
+ if (handler != null) handler(this, root);
+ }
}
}
\ No newline at end of file
diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapVisualization.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapVisualization.cs
index 5d575b1fd..af3ba4150 100644
--- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapVisualization.cs
+++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/MapVisualization.cs
@@ -6,24 +6,29 @@ namespace Mapbox.Unity.MeshGeneration
using Mapbox.Unity.MeshGeneration.Data;
using Mapbox.Unity.MeshGeneration.Factories;
using Mapbox.Platform;
+ using Utils;
+ using Utilities;
[CreateAssetMenu(menuName = "Mapbox/MapVisualization")]
public class MapVisualization : ScriptableObject
{
+ public WorldParameters WorldParameters;
public List Factories;
///
/// Initializes the factories by passing the file source down, which's necessary for data (web/file) calls
///
///
- public void Initialize(IFileSource fs)
+ public void Initialize(IFileSource fs, WorldParameters parameters)
{
+ WorldParameters = parameters;
foreach (Factory fac in Factories.Where(x => x != null))
{
- fac.Initialize(fs);
+ fac.Initialize(fs, parameters);
}
}
+
///
/// Registers requested tiles to the factories
///
diff --git a/sdkproject/Assets/Mapbox/Examples/Drive/Direction/DirectionsHelper.cs b/sdkproject/Assets/Mapbox/Examples/Drive/Direction/DirectionsHelper.cs
index 317a58bfc..f426cea53 100644
--- a/sdkproject/Assets/Mapbox/Examples/Drive/Direction/DirectionsHelper.cs
+++ b/sdkproject/Assets/Mapbox/Examples/Drive/Direction/DirectionsHelper.cs
@@ -10,24 +10,23 @@ namespace Mapbox.Examples.Drive
public class DirectionsHelper : MonoBehaviour
{
+ private Transform _root;
+ public MapController MapController;
public DirectionsFactory Directions;
public List Waypoints;
- void Start()
+ void Awake()
{
// draw directions path at start
- Query();
+ MapController.WorldCreated += (s, e) =>
+ {
+ Query();
+ };
}
public void Query()
{
- var waypoints = new List();
- foreach (var wp in Waypoints)
- {
- waypoints.Add(wp.transform.GetGeoPosition(MapController.ReferenceTileRect.Center, MapController.WorldScaleFactor));
- }
-
- Directions.Query(waypoints);
+ Directions.Query(Waypoints);
}
}
}
\ No newline at end of file
diff --git a/sdkproject/Assets/Mapbox/Examples/Drive/Drive.unity b/sdkproject/Assets/Mapbox/Examples/Drive/Drive.unity
index 2aaf09e8d..522d5fe8e 100644
--- a/sdkproject/Assets/Mapbox/Examples/Drive/Drive.unity
+++ b/sdkproject/Assets/Mapbox/Examples/Drive/Drive.unity
@@ -305,6 +305,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3d8534d45be3bd44f84c41bc08827496, type: 3}
m_Name:
m_EditorClassIdentifier:
+ MapController: {fileID: 199863780}
+ MapVisualization: {fileID: 11400000, guid: 4f4961d6f3e45f84f99bda9cdc9dbb2b, type: 2}
Directions: {fileID: 11400000, guid: d370b4703777f8c48b26eead134f2edb, type: 2}
Waypoints:
- {fileID: 1553875871}
diff --git a/sdkproject/Assets/Mapbox/Examples/Drive/Mesh/DriveBuildingVisualizer.asset.meta b/sdkproject/Assets/Mapbox/Examples/Drive/Mesh/DriveBuildingVisualizer.asset.meta
index e2e152b00..1787e2b92 100644
--- a/sdkproject/Assets/Mapbox/Examples/Drive/Mesh/DriveBuildingVisualizer.asset.meta
+++ b/sdkproject/Assets/Mapbox/Examples/Drive/Mesh/DriveBuildingVisualizer.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 3a02dddaa897fd444b76d6ed1339dab6
-timeCreated: 1485392370
+timeCreated: 1494434733
licenseType: Pro
NativeFormatImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/LocationProvider/LocationProvider.unity b/sdkproject/Assets/Mapbox/Examples/LocationProvider/LocationProvider.unity
index 67eb06d75..9674afa7d 100644
--- a/sdkproject/Assets/Mapbox/Examples/LocationProvider/LocationProvider.unity
+++ b/sdkproject/Assets/Mapbox/Examples/LocationProvider/LocationProvider.unity
@@ -124,6 +124,7 @@ MonoBehaviour:
LatLng: 37.7648, -122.463
Zoom: 15
Range: {x: 1, y: 1, z: 1, w: 1}
+ Root: {fileID: 114606470}
--- !u!4 &114606472
Transform:
m_ObjectHideFlags: 0
@@ -472,6 +473,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a034c4eeb3293418aab101c1895844a4, type: 3}
m_Name:
m_EditorClassIdentifier:
+ _mapController: {fileID: 114606471}
_targetTransform: {fileID: 1649127106}
--- !u!4 &1649127106
Transform:
@@ -528,6 +530,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4bb39d89f6f3742418be7c93b4259637, type: 3}
m_Name:
m_EditorClassIdentifier:
+ _mapController: {fileID: 114606471}
_positionFollowFactor: 0.5
_useTransformLocationProvider: 0
--- !u!4 &1934621224
diff --git a/sdkproject/Assets/Mapbox/Examples/LocationProvider/Scripts/PositionWithLocationProvider.cs b/sdkproject/Assets/Mapbox/Examples/LocationProvider/Scripts/PositionWithLocationProvider.cs
index 84d5aaeb0..9612cb338 100644
--- a/sdkproject/Assets/Mapbox/Examples/LocationProvider/Scripts/PositionWithLocationProvider.cs
+++ b/sdkproject/Assets/Mapbox/Examples/LocationProvider/Scripts/PositionWithLocationProvider.cs
@@ -7,6 +7,9 @@ namespace Mapbox.Examples.LocationProvider
public class PositionWithLocationProvider : MonoBehaviour
{
+ [SerializeField]
+ private MapController _mapController;
+
///
/// The rate at which the transform's position tries catch up to the provided location.
///
@@ -66,15 +69,15 @@ void OnDestroy()
void LocationProvider_OnLocationUpdated(object sender, LocationUpdatedEventArgs e)
{
- if (MapController.ReferenceTileRect == null)
+ if (_mapController.WorldParameters == null)
{
return;
}
_targetPosition = Conversions.GeoToWorldPosition(e.Location,
- MapController.ReferenceTileRect.Center,
- MapController.WorldScaleFactor).ToVector3xz();
- }
+ _mapController.WorldParameters.ReferenceTileRect.Center,
+ _mapController.WorldParameters.WorldScaleFactor).ToVector3xz();
+ }
void Update()
{
diff --git a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MapImageFactory.asset.meta b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MapImageFactory.asset.meta
index 8230ca6e8..126c55f51 100644
--- a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MapImageFactory.asset.meta
+++ b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MapImageFactory.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 4304eeeba74ed4e48a435f96d9076abc
-timeCreated: 1485208674
+timeCreated: 1494434733
licenseType: Pro
NativeFormatImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory.asset.meta b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory.asset.meta
index 505fce516..287ebf71e 100644
--- a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory.asset.meta
+++ b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: ee4d24cec5a998543b716563b2b77dae
-timeCreated: 1485208825
+timeCreated: 1494434733
licenseType: Pro
NativeFormatImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory/BuildingModifierStack/DefaultBuildingStack.asset.meta b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory/BuildingModifierStack/DefaultBuildingStack.asset.meta
index d6b211ebf..0953ef35c 100644
--- a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory/BuildingModifierStack/DefaultBuildingStack.asset.meta
+++ b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/MeshFactory/BuildingModifierStack/DefaultBuildingStack.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 70166653a5881394c9dc697c1014376e
-timeCreated: 1485212723
+timeCreated: 1494434733
licenseType: Pro
NativeFormatImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/TerrainFactory.asset.meta b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/TerrainFactory.asset.meta
index 8d83c0e86..c2e575505 100644
--- a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/TerrainFactory.asset.meta
+++ b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MapVisualization/Factories/TerrainFactory.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: cb8b05cd0605ab3409113202791784c1
-timeCreated: 1485208271
+timeCreated: 1494434733
licenseType: Pro
NativeFormatImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MeshGeneration.unity.meta b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MeshGeneration.unity.meta
index 609f2c66c..71989efed 100644
--- a/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MeshGeneration.unity.meta
+++ b/sdkproject/Assets/Mapbox/Examples/MeshGenerationBasics/MeshGeneration.unity.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: f804e6882903c5f4595d554933b1cd94
-timeCreated: 1485206935
+timeCreated: 1494434733
licenseType: Pro
DefaultImporter:
userData:
diff --git a/sdkproject/Assets/Mapbox/Examples/_resources/Scripts/Slippy.cs b/sdkproject/Assets/Mapbox/Examples/_resources/Scripts/Slippy.cs
index 509e150f1..6342f288d 100644
--- a/sdkproject/Assets/Mapbox/Examples/_resources/Scripts/Slippy.cs
+++ b/sdkproject/Assets/Mapbox/Examples/_resources/Scripts/Slippy.cs
@@ -7,6 +7,7 @@ namespace Mapbox.Examples
public class Slippy : MonoBehaviour
{
+ private Transform _root;
private MapController _mapController;
private Camera _camera;
[SerializeField]
@@ -24,15 +25,20 @@ void Start()
_mapController = GetComponent();
_camera = Camera.main;
_yPlane = new Plane(Vector3.up, Vector3.zero);
+ _root = _mapController.Root.transform;
+ _mapController.WorldCreated += (s, e) => { _root = e.transform; };
}
void Update()
{
+ if (_root == null || _mapController == null)
+ return;
+
_ray = _camera.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
if (_yPlane.Raycast(_ray, out _hitDistance))
{
- _cameraTarget = _ray.GetPoint(_hitDistance) / MapController.WorldScaleFactor;
- _currentTile = Conversions.MetersToTile(new Vector2d(MapController.ReferenceTileRect.Center.x + _cameraTarget.x, MapController.ReferenceTileRect.Center.y + _cameraTarget.z), _mapController.Zoom);
+ _cameraTarget = _ray.GetPoint(_hitDistance) / _root.localScale.x;
+ _currentTile = Conversions.MetersToTile(new Vector2d(_mapController.WorldParameters.ReferenceTileRect.Center.x + _cameraTarget.x, _mapController.WorldParameters.ReferenceTileRect.Center.y + _cameraTarget.z), _mapController.Zoom);
if (_currentTile != _cachedTile)
{
for (int i = -_range; i <= _range; i++)