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.
 
 
 
mapbox-sdk/Unity/Map/MapVisualizer.cs

51 lines
1.5 KiB

using Mapbox.Unity.Map.Interfaces;
namespace Mapbox.Unity.Map
{
using UnityEngine;
using Mapbox.Unity.MeshGeneration.Data;
using Mapbox.Map;
public enum ModuleState
{
Initialized,
Working,
Finished
}
public class AssignmentTypeAttribute : PropertyAttribute
{
public System.Type Type;
public AssignmentTypeAttribute(System.Type t)
{
Type = t;
}
}
/// <summary>
/// Map Visualizer
/// Represents a map.Doesn't contain much logic and at the moment, it creates requested tiles and relays them to the factories
/// under itself.It has a caching mechanism to reuse tiles and does the tile positioning in unity world.
/// Later we'll most likely keep track of map features here as well to allow devs to query for features easier
/// (i.e.query all buildings x meters around any restaurant etc).
/// </summary>
[CreateAssetMenu(menuName = "Mapbox/MapVisualizer/BasicMapVisualizer")]
public class MapVisualizer : AbstractMapVisualizer
{
protected override void PlaceTile(UnwrappedTileId tileId, UnityTile tile, IMapReadable map)
{
var rect = tile.Rect;
// TODO: this is constant for all tiles--cache.
var scale = tile.TileScale;
var scaleFactor = Mathf.Pow(2, (map.InitialZoom - map.AbsoluteZoom));
var position = new Vector3(
(float)(rect.Center.x - map.CenterMercator.x) * scale * scaleFactor,
0,
(float)(rect.Center.y - map.CenterMercator.y) * scale * scaleFactor);
tile.transform.localPosition = position;
}
}
}