protected Vector2d CenterInMercator; //this is like distance (meters) in mercator public virtual void Init(List <Factory> factories, World.Settings settings) { _factories = factories; if (MapMaterial == null) { MapMaterial = Resources.Load <Material>("Ground"); } var v2 = GM.LatLonToMeters(settings.Lat, settings.Long); var tile = GM.MetersToTile(v2, settings.DetailLevel); TileHost = new GameObject("Tiles").transform; TileHost.SetParent(transform, false); Zoom = settings.DetailLevel; TileSize = settings.TileSize; UseLayers = settings.UseLayers; Tiles = new Dictionary <Vector2d, Tile>(); CenterTms = tile; CenterInMercator = GM.TileBounds(CenterTms, Zoom).Center; Range = settings.Range; LoadImages = settings.LoadImages; LoadTiles(CenterTms, CenterInMercator); var rect = GM.TileBounds(CenterTms, Zoom); transform.localScale = Vector3.one * (float)(TileSize / rect.Width); }
public override void Init(List <Factory> factories, World.Settings settings) { base.Init(factories, settings); _removeAfter = Math.Max(_removeAfter, Range * 2 + 1); var rect = new Vector2(settings.TileSize, settings.TileSize); _centerCollider = new Rect(Vector2.zero - rect / 2, rect); }
public override void Init(List <Factory> factories, World.Settings settings) { CacheFolderPath = Path.Combine(Application.dataPath, RelativeCachePath); if (!Directory.Exists(CacheFolderPath)) { Directory.CreateDirectory(CacheFolderPath); } base.Init(factories, settings); }
public override void Init(Dictionary<Type, Factory> factories, World.Settings settings) { base.Init(factories, settings); _removeAfter = Math.Max(_removeAfter, Range * 2 + 1); var refTile = Tiles.Values.First(); _centerCollider = new Rect(Vector2.zero - refTile.Rect.size / 2 * transform.lossyScale.x, refTile.Rect.size * transform.lossyScale.x); Observable.Interval(TimeSpan.FromSeconds(2)).Subscribe(x => { UpdateTiles(); }); }
protected Vector2 CenterInMercator; //this is like distance (meters) in mercator public virtual void Init(Dictionary <Type, Factory> factories, World.Settings settings) { _factories = factories; var v2 = GM.LatLonToMeters(settings.Lat, settings.Long); var tile = GM.MetersToTile(v2, settings.DetailLevel); TileHost = new GameObject("Tiles").transform; TileHost.SetParent(transform, false); _key = settings.Key; Zoom = settings.DetailLevel; TileSize = settings.TileSize; Tiles = new Dictionary <Vector2, Tile>(); CenterTms = tile; CenterInMercator = GM.TileBounds(CenterTms, Zoom).center; Range = settings.Range; LoadImages = settings.LoadImages; LoadTiles(CenterTms, CenterInMercator); var rect = GM.TileBounds(CenterTms, Zoom); transform.localScale = Vector3.one * (TileSize / rect.width); }
public override void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings) { base.Init(buildingFactory, roadFactory, settings); _removeAfter = Math.Max(_removeAfter, Range * 2 + 1); _tileSize = Tiles.Values.First().Rect.size; _centerCollider = new Rect(Vector2.zero - Tiles.Values.First().Rect.size / 2, Tiles.Values.First().Rect.size); // Observable.Interval(TimeSpan.FromSeconds(2)).Subscribe(x => { UpdateTiles(); }); }
protected Vector2 CenterInMercator; //this is like distance (meters) in mercator public virtual void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings) { //初始经纬度转mercator var v2 = GM.LatLonToMeters(settings.Lat, settings.Long); Debug.Log("v2:"); Debug.Log(v2); //经纬度转detail level级别的tile坐标 var tile = GM.MetersToTile(v2, settings.DetailLevel); //tilehost为tile的坐标 TileHost = new GameObject("Tiles").transform; TileHost.SetParent(transform, false); BuildingFactory = buildingFactory; RoadFactory = roadFactory; Tiles = new Dictionary <Vector2, Tile>(); CenterTms = tile; //tile 坐标 CenterInMercator = GM.TileBounds(CenterTms, Zoom).center; initposition = (v2 - CenterInMercator).ToVector3xz(); GameManager.Instance.yourselfavatar = Instantiate(yourself, initposition, this.transform.rotation) as GameObject; GameManager.Instance.yourselfavatar.GetComponent <GPSmovemen>().centertiletms = CenterInMercator; Zoom = settings.DetailLevel; Range = settings.Range; LoadImages = settings.LoadImages; Debug.Log("Centertms: "); Debug.Log(CenterTms); Debug.Log("CenterinMercator: "); Debug.Log(CenterInMercator); LoadTiles(CenterTms, CenterInMercator); }
protected Vector2 CenterInMercator; //this is like distance (meters) in mercator public virtual void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings) { var v2 = GM.LatLonToMeters(settings.Lat, settings.Long); var tile = GM.MetersToTile(v2, settings.DetailLevel); TileHost = new GameObject("Tiles").transform; TileHost.SetParent(transform, false); BuildingFactory = buildingFactory; RoadFactory = roadFactory; Tiles = new Dictionary <Vector2, Tile>(); CenterTms = tile; CenterInMercator = GM.TileBounds(CenterTms, Zoom).center; Zoom = settings.DetailLevel; Range = settings.Range; LoadImages = settings.LoadImages; LoadTiles(CenterTms, CenterInMercator); }