Ejemplo n.º 1
0
    private static void LoadSettings(OnlineMapsXML el, OnlineMaps api)
    {
        api.position = el.Get <Vector2>("Position");
        api.zoom     = el.Get <int>("Zoom");

        if (api.target == OnlineMapsTarget.texture)
        {
            api.texture = GetObject(el.Get <int>("Texture")) as Texture2D;
        }
        else
        {
            api.tilesetWidth  = el.Get <int>("TilesetWidth");
            api.tilesetHeight = el.Get <int>("TilesetHeight");
            api.tilesetSize   = el.Get <Vector2>("TilesetSize");
        }

        api.source  = (OnlineMapsSource)el.Get <int>("Source");
        api.mapType = el.Get("MapType");
        OnlineMapsProvider.MapType activeType = OnlineMapsProvider.FindMapType(api.mapType);
        if (activeType.isCustom)
        {
            api.customProviderURL = el.Get <string>("CustomProviderURL");
        }
        api.labels                   = el.Get <bool>("Labels");
        api.traffic                  = el.Get <bool>("Traffic");
        api.redrawOnPlay             = el.Get <bool>("RedrawOnPlay");
        api.useSmartTexture          = el.Get <bool>("UseSmartTexture");
        api.emptyColor               = el.Get <Color>("EmptyColor");
        api.defaultTileTexture       = GetObject(el.Get <int>("DefaultTileTexture")) as Texture2D;
        api.tooltipBackgroundTexture = GetObject(el.Get <int>("TooltipTexture")) as Texture2D;
        api.defaultMarkerTexture     = GetObject(el.Get <int>("DefaultMarkerTexture")) as Texture2D;
        api.defaultMarkerAlign       = (OnlineMapsAlign)el.Get <int>("DefaultMarkerAlign");
        api.showMarkerTooltip        = (OnlineMapsShowMarkerTooltip)el.Get <int>("ShowMarkerTooltip");
        api.useSoftwareJPEGDecoder   = el.Get <bool>("UseSoftwareJPEGDecoder");
    }
Ejemplo n.º 2
0
    private void OnEnable()
    {
#if UNITY_EDITOR
        EditorApplication.update += CheckScriptCompiling;
#endif

        _instance = this;

        tooltipDrawer = new OnlineMapsGUITooltipDrawer(this);

        activeType = OnlineMapsProvider.FindMapType(mapType);
        _mapType   = mapType = activeType.fullID;

        trafficProvider = OnlineMapsTrafficProvider.GetByID(trafficProviderID);

        if (language == "")
        {
            language = activeType.provider.twoLetterLanguage ? "en" : "eng";
        }

        _language          = language;
        _labels            = labels;
        _traffic           = traffic;
        _trafficProviderID = trafficProviderID;
        izoom = (int)_zoom;

        UpdateCorners();
    }
Ejemplo n.º 3
0
        /// <summary>
        /// Draws UI elements using IMGUI
        /// </summary>
        private void OnGUI()
        {
            if (GUILayout.Button("Set DigitalGlobe"))
            {
                // Switch to DigitalGlobe / Satellite
                string mapTypeID = "digitalglobe.satellite";

                OnlineMaps.instance.mapType = mapTypeID;

                // Get map type
                OnlineMapsProvider.MapType mapType = OnlineMapsProvider.FindMapType(mapTypeID);

                // Try get access token field from map type
                OnlineMapsProvider.ExtraField field = GetExtraField(mapType.extraFields, "accesstoken");

                // If the field is not in the map type, try to get it from the provider
                if (field == null)
                {
                    field = GetExtraField(mapType.provider.extraFields, "accesstoken");
                }

                // If the field is present, set value
                if (field != null)
                {
                    field.value = "My DigitalGlobe Token";
                }
            }
        }
Ejemplo n.º 4
0
 public static void OpenWindow()
 {
     GetWindow <OnlineMapsWizard>(true, "Create Map", true);
     activeMapType  = OnlineMapsProvider.FindMapType("arcgis");
     providers      = OnlineMapsProvider.GetProviders();
     providersTitle = OnlineMapsProvider.GetProvidersTitle();
     providerIndex  = activeMapType.provider.index;
 }
    private void OnEnable()
    {
        activeMapType  = OnlineMapsProvider.FindMapType("arcgis");
        providers      = OnlineMapsProvider.GetProviders();
        providersTitle = OnlineMapsProvider.GetProvidersTitle();
        providerIndex  = activeMapType.provider.index;

        InitSteps();
        defaultTilesetShader = Shader.Find("Infinity Code/Online Maps/Tileset");
        tilesetShader        = defaultTilesetShader;
        markerShader         = Shader.Find("Transparent/Diffuse");
        drawingShader        = Shader.Find("Infinity Code/Online Maps/Tileset DrawingElement");
        activeCamera         = Camera.main;
    }
Ejemplo n.º 6
0
    private void OnEnable()
    {
        try
        {
            CacheSerializedProperties();
            map     = (OnlineMaps)target;
            control = map.GetComponent <OnlineMapsControlBase>();

            savableItems = map.GetComponents <IOnlineMapsSavableComponent>().SelectMany(c => c.GetSavableItems()).OrderByDescending(s => s.priority).ThenBy(s => s.label).ToList();

            providers      = OnlineMapsProvider.GetProviders();
            providersTitle = providers.Select(p => p.title).ToArray();

            trafficProviders     = OnlineMapsTrafficProvider.GetProviders();
            cTrafficProviders    = trafficProviders.Select(p => new GUIContent(p.title)).ToArray();
            trafficProviderIndex = 0;
            for (int i = 0; i < trafficProviders.Length; i++)
            {
                if (trafficProviders[i].id == pTrafficProviderID.stringValue)
                {
                    trafficProviderIndex = i;
                    break;
                }
            }

            if (pTooltipTexture.objectReferenceValue == null)
            {
                pTooltipTexture.objectReferenceValue = OnlineMapsEditorUtils.LoadAsset <Texture2D>("Textures\\Tooltip.psd");
            }

            updateAvailableContent = new GUIContent("Update Available", OnlineMapsEditorUtils.LoadAsset <Texture2D>("Icons\\update_available.png"), "Update Available");
            wizardIconContent      = new GUIContent(OnlineMapsEditorUtils.LoadAsset <Texture2D>("Icons\\WizardIcon.png"), "Wizard");

            OnlineMapsUpdater.CheckNewVersionAvailable();

            mapType       = OnlineMapsProvider.FindMapType(pMapType.stringValue);
            providerIndex = mapType.provider.index;

            serializedObject.ApplyModifiedProperties();

            map.floatZoom = map.CheckMapSize(map.floatZoom);
        }
        catch (Exception e)
        {
            Debug.Log(e.Message + "\n" + e.StackTrace);
            //throw;
        }
    }
Ejemplo n.º 7
0
    private void OnEnable()
    {
        CacheSerializedProperties();
        api = (OnlineMaps)target;

        providers      = OnlineMapsProvider.GetProviders();
        providersTitle = providers.Select(p => p.title).ToArray();

        if (string.IsNullOrEmpty(pMapType.stringValue))
        {
            pMapType.stringValue = OnlineMapsProvider.Upgrade(pProvider.enumValueIndex, pType.intValue);
        }

        trafficProviders     = OnlineMapsTrafficProvider.GetProviders();
        cTrafficProviders    = trafficProviders.Select(p => new GUIContent(p.title)).ToArray();
        trafficProviderIndex = 0;
        for (int i = 0; i < trafficProviders.Length; i++)
        {
            if (trafficProviders[i].id == pTrafficProviderID.stringValue)
            {
                trafficProviderIndex = i;
                break;
            }
        }

        if (pDefaultMarkerTexture.objectReferenceValue == null)
        {
            pDefaultMarkerTexture.objectReferenceValue = OnlineMapsEditorUtils.LoadAsset <Texture2D>("Textures\\Markers\\DefaultMarker.png");
        }
        if (pTooltipTexture.objectReferenceValue == null)
        {
            pTooltipTexture.objectReferenceValue = OnlineMapsEditorUtils.LoadAsset <Texture2D>("Textures\\Tooltip.psd");
        }

        updateAvailableContent = new GUIContent("Update Available", OnlineMapsEditorUtils.LoadAsset <Texture2D>("Icons\\update_available.png"), "Update Available");
        wizardIconContent      = new GUIContent(OnlineMapsEditorUtils.LoadAsset <Texture2D>("Icons\\WizardIcon.png"), "Wizard");

        OnlineMapsUpdater.CheckNewVersionAvailable();

        mapType       = OnlineMapsProvider.FindMapType(pMapType.stringValue);
        providerIndex = mapType.provider.index;

        serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 8
0
    private void OnEnable()
    {
        CacheSerializedProperties();
        api = (OnlineMaps)target;

        providers      = OnlineMapsProvider.GetProviders();
        providersTitle = providers.Select(p => p.title).ToArray();

        if (string.IsNullOrEmpty(pMapType.stringValue))
        {
            pMapType.stringValue = OnlineMapsProvider.Upgrade(pProvider.enumValueIndex, pType.intValue);
        }

        if (pDefaultMarkerTexture.objectReferenceValue == null)
        {
            pDefaultMarkerTexture.objectReferenceValue = GetIcon("DefaultMarker.png");
        }
        if (pTooltipTexture.objectReferenceValue == null)
        {
            pTooltipTexture.objectReferenceValue = GetIcon("Tooltip.psd");
        }

        string[] files = Directory.GetFiles("Assets", "update_available.png", SearchOption.AllDirectories);
        if (files.Length > 0)
        {
            Texture updateAvailableIcon = AssetDatabase.LoadAssetAtPath(files[0], typeof(Texture)) as Texture;
            updateAvailableContent = new GUIContent("Update Available", updateAvailableIcon, "Update Available");
        }

        OnlineMapsUpdater.CheckNewVersionAvailable();

        mapType       = OnlineMapsProvider.FindMapType(pMapType.stringValue);
        providerIndex = mapType.provider.index;

        serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 9
0
    private void CheckBaseProps()
    {
        if (mapType != _mapType)
        {
            activeType = OnlineMapsProvider.FindMapType(mapType);
            _mapType   = mapType = activeType.fullID;
            if (_buffer != null)
            {
                _buffer.UnloadOldTypes();
            }
            Redraw();
        }

        if (_language != language || _labels != labels)
        {
            _labels   = labels;
            _language = language;

            if (_buffer != null)
            {
                _buffer.Dispose();
                _buffer = null;
#if NETFX_CORE
                if (renderThread != null)
                {
                    renderThread.Dispose();
                }
#endif
#if !UNITY_WEBGL
                renderThread = null;
#endif
            }

            Redraw();
        }
        if (traffic != _traffic || trafficProviderID != _trafficProviderID)
        {
            _traffic = traffic;

            _trafficProviderID = trafficProviderID;
            trafficProvider    = OnlineMapsTrafficProvider.GetByID(trafficProviderID);

            OnlineMapsTile[] tiles;
            lock (OnlineMapsTile.lockTiles)
            {
                tiles = OnlineMapsTile.tiles.ToArray();
            }
            if (traffic)
            {
                foreach (OnlineMapsTile tile in tiles)
                {
                    OnlineMapsRasterTile rTile = tile as OnlineMapsRasterTile;
                    rTile.trafficProvider        = trafficProvider;
                    rTile.trafficWWW             = new OnlineMapsWWW(rTile.trafficURL);
                    rTile.trafficWWW["tile"]     = tile;
                    rTile.trafficWWW.OnComplete += OnlineMapsTileManager.OnTrafficWWWComplete;
                    if (rTile.trafficTexture != null)
                    {
                        OnlineMapsUtils.Destroy(rTile.trafficTexture);
                        rTile.trafficTexture = null;
                    }
                }
            }
            else
            {
                foreach (OnlineMapsTile tile in tiles)
                {
                    OnlineMapsRasterTile rTile = tile as OnlineMapsRasterTile;
                    if (rTile.trafficTexture != null)
                    {
                        OnlineMapsUtils.Destroy(rTile.trafficTexture);
                        rTile.trafficTexture = null;
                    }
                    rTile.trafficWWW = null;
                }
            }
            Redraw();
        }
    }
Ejemplo n.º 10
0
    private void OnEnable()
    {
        activeMapType  = OnlineMapsProvider.FindMapType("arcgis");
        providers      = OnlineMapsProvider.GetProviders();
        providersTitle = OnlineMapsProvider.GetProvidersTitle();
        providerIndex  = activeMapType.provider.index;

#if UNITY_2019_1_OR_NEWER
        bool useSRP = UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset != null;
#else
        bool useSRP = false;
#endif

        if (useSRP)
        {
            string[] assets = AssetDatabase.FindAssets("TilesetPBRShader");
            if (assets.Length > 0)
            {
                defaultTilesetShader = AssetDatabase.LoadAssetAtPath <Shader>(AssetDatabase.GUIDToAssetPath(assets[0]));
            }
            else
            {
                defaultTilesetShader = Shader.Find("Infinity Code/Online Maps/Tileset Cutout");
            }
            tilesetShader = defaultTilesetShader;

            assets = AssetDatabase.FindAssets("TilesetPBRMarkerShader");
            if (assets.Length > 0)
            {
                markerShader = AssetDatabase.LoadAssetAtPath <Shader>(AssetDatabase.GUIDToAssetPath(assets[0]));
            }
            else
            {
                markerShader = Shader.Find("Transparent/Diffuse");
            }

            assets = AssetDatabase.FindAssets("TilesetPBRDrawingElement");
            if (assets.Length > 0)
            {
                drawingShader = AssetDatabase.LoadAssetAtPath <Shader>(AssetDatabase.GUIDToAssetPath(assets[0]));
            }
            else
            {
                drawingShader = Shader.Find("Infinity Code/Online Maps/Tileset DrawingElement");
            }
        }
        else
        {
            defaultTilesetShader = Shader.Find("Infinity Code/Online Maps/Tileset Cutout");
            tilesetShader        = defaultTilesetShader;
            markerShader         = Shader.Find("Transparent/Diffuse");
            drawingShader        = Shader.Find("Infinity Code/Online Maps/Tileset DrawingElement");
        }


        activeCamera = Camera.main;

        CachePlugins();
        CacheControls();
        InitSteps();

        if (useSRP)
        {
            Plugin plugin = plugins.FirstOrDefault(p => p.title == "PBR Bridge") as Plugin;
            if (plugin != null)
            {
                plugin.enabled = true;
            }
        }
    }