コード例 #1
0
        private static float GetHighwayWidth(HighwayTypeEnum type)
        {
            float result = 0;

            switch (type)
            {
            case HighwayTypeEnum.Motorway: result = HighwaysConstants.motorwayWidth; break;

            case HighwayTypeEnum.Trunk: result = HighwaysConstants.trunkWidth; break;

            case HighwayTypeEnum.Primary: result = HighwaysConstants.primaryWidth; break;

            case HighwayTypeEnum.Secondary: result = HighwaysConstants.secondaryWidth; break;

            case HighwayTypeEnum.Tertiary: result = HighwaysConstants.tertiaryWidth; break;

            case HighwayTypeEnum.Residential: result = HighwaysConstants.residentialWidth; break;

            case HighwayTypeEnum.Service: result = HighwaysConstants.serviceWidth; break;

            case HighwayTypeEnum.Construction: result = HighwaysConstants.proposedWidth; break;

            case HighwayTypeEnum.Proposed: result = HighwaysConstants.underConstruction; break;

            case HighwayTypeEnum.Cycleway: result = HighwaysConstants.cycleway; break;

            default: result = HighwaysConstants.defaultWidth; break;
            }
            return(result * Assets.Scripts.Constants.Constants.Scale);
        }
コード例 #2
0
        public static GameObject CreateHighway(OsmWay highwayData, OsmBounds bounds, Transform parent)
        {
            Vector3[] linePoints = new Vector3[highwayData.Nodes.Count];

            for (int i = 0; i < highwayData.Nodes.Count; i++)
            {
                linePoints[i] = OsmToUnityConverter.GetPointFromUnityPointVec3(highwayData.Nodes[i].Point, bounds);
            }

            HighwayTypeEnum type = OSMtoSharp.Enums.Helpers.EnumExtensions.
                                   GetTagKeyEnum <HighwayTypeEnum>
                                       (highwayData.Tags[TagKeyEnum.Highway]);

            float width = GetHighwayWidth(type);
            Color color = GetHighwayColor(type);

            GameObject result = LineFactory.CreateLine(linePoints, width, color, new Material(Shader.Find("Sprites/Default")));

            if (highwayData.Tags.ContainsKey(TagKeyEnum.Name))
            {
                result.name = highwayData.Tags[TagKeyEnum.Name];
                CreateRoadNameLabel(linePoints, result.name, result.transform);
            }
            else
            {
                result.name = "<highway>";
            }

            result.transform.parent = parent;

            return(result);
        }
コード例 #3
0
        private static Color GetHighwayColor(HighwayTypeEnum type)
        {
            switch (type)
            {
            case HighwayTypeEnum.Motorway: return(HighwaysConstants.motorwayColor);

            case HighwayTypeEnum.Trunk: return(HighwaysConstants.trunkColor);

            case HighwayTypeEnum.Primary: return(HighwaysConstants.primaryColor);

            case HighwayTypeEnum.Secondary: return(HighwaysConstants.secondaryColor);

            case HighwayTypeEnum.Cycleway: return(HighwaysConstants.cycleColor);

            default: return(HighwaysConstants.defaultColor);
            }
        }