Exemplo n.º 1
0
        /// <summary>
        /// Set up sublayers using VectorLayerVisualizers.
        /// </summary>
        protected override void OnInitialized()
        {
            _layerProgress = new Dictionary <UnityTile, HashSet <LayerVisualizerBase> >();
            _layerBuilder  = new Dictionary <string, List <LayerVisualizerBase> >();

            DataFetcher = ScriptableObject.CreateInstance <VectorDataFetcher>();
            DataFetcher.DataRecieved  += OnVectorDataRecieved;
            DataFetcher.FetchingError += OnDataError;

            foreach (var item in _properties.locationPrefabList)
            {
                LayerVisualizerBase visualizer = CreateInstance <LocationPrefabsLayerVisualizer>();
                item.performanceOptions = _properties.performanceOptions;
                ((LocationPrefabsLayerVisualizer)visualizer).SetProperties((PrefabItemOptions)item);

                visualizer.Initialize();
                if (visualizer == null)
                {
                    continue;
                }

                if (_layerBuilder.ContainsKey(visualizer.Key))
                {
                    _layerBuilder[visualizer.Key].Add(visualizer);
                }
                else
                {
                    _layerBuilder.Add(visualizer.Key, new List <LayerVisualizerBase>()
                    {
                        visualizer
                    });
                }
            }

            foreach (var sublayer in _properties.vectorSubLayers)
            {
                //if its of type prefabitemoptions then separate the visualizer type
                LayerVisualizerBase visualizer = CreateInstance <VectorLayerVisualizer>();
                sublayer.performanceOptions = _properties.performanceOptions;
                ((VectorLayerVisualizer)visualizer).SetProperties(sublayer);

                visualizer.Initialize();
                if (visualizer == null)
                {
                    continue;
                }

                if (_layerBuilder.ContainsKey(visualizer.Key))
                {
                    _layerBuilder[visualizer.Key].Add(visualizer);
                }
                else
                {
                    _layerBuilder.Add(visualizer.Key, new List <LayerVisualizerBase>()
                    {
                        visualizer
                    });
                }
            }
        }
Exemplo n.º 2
0
        public virtual LayerVisualizerBase AddPOIVectorLayerVisualizer(PrefabItemOptions poiSubLayer)
        {
            LayerVisualizerBase visualizer = CreateInstance <LocationPrefabsLayerVisualizer>();

            poiSubLayer.performanceOptions = _properties.performanceOptions;
            ((LocationPrefabsLayerVisualizer)visualizer).SetProperties((PrefabItemOptions)poiSubLayer);

            visualizer.LayerVisualizerHasChanged += UpdateTileFactory;

            visualizer.Initialize();
            if (visualizer == null)
            {
                return(null);
            }

            if (_layerBuilder.ContainsKey(visualizer.Key))
            {
                _layerBuilder[visualizer.Key].Add(visualizer);
            }
            else
            {
                _layerBuilder.Add(visualizer.Key, new List <LayerVisualizerBase>()
                {
                    visualizer
                });
            }

            return(visualizer);
        }
Exemplo n.º 3
0
        public virtual LayerVisualizerBase AddVectorLayerVisualizer(VectorSubLayerProperties subLayer)
        {
            //if its of type prefabitemoptions then separate the visualizer type
            LayerVisualizerBase visualizer = CreateInstance <VectorLayerVisualizer>();

            //TODO : FIX THIS !!
            visualizer.LayerVisualizerHasChanged += UpdateTileFactory;

            // Set honorBuildingSettings - need to set here in addition to the UI.
            // Not setting it here can lead to wrong filtering.

            bool isPrimitiveTypeValidForBuidingIds = (subLayer.coreOptions.geometryType == VectorPrimitiveType.Polygon) || (subLayer.coreOptions.geometryType == VectorPrimitiveType.Custom);
            bool isSourceValidForBuildingIds       = _properties.sourceType != VectorSourceType.MapboxStreets;

            subLayer.honorBuildingIdSetting = isPrimitiveTypeValidForBuidingIds && isSourceValidForBuildingIds;
            // Setup visualizer.
            ((VectorLayerVisualizer)visualizer).SetProperties(subLayer);

            visualizer.Initialize();
            if (visualizer == null)
            {
                return(visualizer);
            }

            if (_layerBuilder.ContainsKey(visualizer.Key))
            {
                _layerBuilder[visualizer.Key].Add(visualizer);
            }
            else
            {
                _layerBuilder.Add(visualizer.Key, new List <LayerVisualizerBase> {
                    visualizer
                });
            }
            return(visualizer);
        }
        private void CreateLayerVisualizers()
        {
            foreach (var sublayer in _properties.vectorSubLayers)
            {
                //if its of type prefabitemoptions then separate the visualizer type
                LayerVisualizerBase visualizer = CreateInstance <VectorLayerVisualizer>();

                // Set honorBuildingSettings - need to set here in addition to the UI.
                // Not setting it here can lead to wrong filtering.

                bool isPrimitiveTypeValidForBuidingIds = (sublayer.coreOptions.geometryType == VectorPrimitiveType.Polygon || sublayer.coreOptions.geometryType == VectorPrimitiveType.Custom);
                bool isSourceValidForBuildingIds       = (_properties.sourceType != VectorSourceType.MapboxStreets);

                sublayer.honorBuildingIdSetting = isPrimitiveTypeValidForBuidingIds && isSourceValidForBuildingIds;
                // Setup visualizer.
                ((VectorLayerVisualizer)visualizer).SetProperties(sublayer);

                visualizer.Initialize();
                if (visualizer == null)
                {
                    continue;
                }

                if (_layerBuilder.ContainsKey(visualizer.Key))
                {
                    _layerBuilder[visualizer.Key].Add(visualizer);
                }
                else
                {
                    _layerBuilder.Add(visualizer.Key, new List <LayerVisualizerBase>()
                    {
                        visualizer
                    });
                }
            }
        }