IEnumerable <Location> GetLocations(byte[] data, int x, int y, int z) { var tile = new Mapbox.Map.VectorTile(); tile.ParseTileData(data); var layer = tile.Data.GetLayer("poi_label"); m_logger.Debug("Parsing locations for tile {0},{1},{2}", x, y, TileZoomLevel); return(GetLocations(layer, x, y, z)); }
/// <summary> /// Fetches the vector data and passes each layer to relevant layer visualizers /// </summary> /// <param name="tile"></param> /// <param name="e"></param> 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 vectorTile = new Mapbox.Map.VectorTile(); vectorTile.Initialize(parameters, () => { if (vectorTile.Error != null) { Debug.Log(vectorTile.Error); 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); } } } } }); }