public static void OnTrafficWWWComplete(OnlineMapsWWW www)
    {
        OnlineMapsRasterTile tile = www["tile"] as OnlineMapsRasterTile;

        if (tile == null)
        {
            return;
        }
        if (tile.trafficWWW == null || !tile.trafficWWW.isDone)
        {
            return;
        }

        if (tile.status == OnlineMapsTileStatus.disposed)
        {
            tile.trafficWWW = null;
            return;
        }

        if (!www.hasError)
        {
            if (map.control.resultIsTexture)
            {
                if (tile.OnLabelDownloadComplete())
                {
                    map.buffer.ApplyTile(tile);
                }
            }
            else if (tile.trafficWWW != null && map.traffic)
            {
                Texture2D trafficTexture = new Texture2D(256, 256, TextureFormat.ARGB32, false)
                {
                    wrapMode = TextureWrapMode.Clamp
                };
                if (map.useSoftwareJPEGDecoder)
                {
                    OnlineMapsRasterTile.LoadTexture(trafficTexture, www.bytes);
                }
                else
                {
                    tile.trafficWWW.LoadImageIntoTexture(trafficTexture);
                }
                tile.trafficTexture = trafficTexture;
            }

            if (OnlineMapsTile.OnTrafficDownloaded != null)
            {
                OnlineMapsTile.OnTrafficDownloaded(tile);
            }

            map.Redraw();
        }

        tile.trafficWWW = null;
    }
Example #2
0
    protected override void LoadTileFromWWW(OnlineMapsWWW www)
    {
        if (map.control.resultIsTexture)
        {
            DownloadComplete();
            if (status != OnlineMapsTileStatus.error)
            {
                map.buffer.ApplyTile(this);
            }
        }
        else
        {
            Texture2D tileTexture = new Texture2D(256, 256, TextureFormat.RGB24, map.control.mipmapForTiles)
            {
                wrapMode = TextureWrapMode.Clamp
            };

            if (map.useSoftwareJPEGDecoder)
            {
                OnlineMapsRasterTile.LoadTexture(tileTexture, www.bytes);
            }
            else
            {
                www.LoadImageIntoTexture(tileTexture);
            }

            tileTexture.name = zoom + "x" + x + "x" + y;

            CheckTextureSize(tileTexture);

            if (status != OnlineMapsTileStatus.error && status != OnlineMapsTileStatus.disposed)
            {
                texture = tileTexture;
                status  = OnlineMapsTileStatus.loaded;
            }
        }

        if (status != OnlineMapsTileStatus.error && status != OnlineMapsTileStatus.disposed)
        {
            if (OnTileDownloaded != null)
            {
                OnTileDownloaded(this);
            }
        }

        MarkLoaded();
        map.Redraw();
    }
 public static void LoadTexture(Texture2D texture, byte[] bytes)
 {
     OnlineMapsRasterTile.LoadTexture(texture, bytes);
 }