public static void LoadGeometry() { foreach (string item in geometryDirs) { geometrys.Add(item, GeometryModel.LoadGeometryFile(item)); } }
public void UpdateUI(GeometryModel geometryModel, GeometryStyleAsset.GeometryStyleSet styleSet) { switch (geometryModel) { case PointModel pointModel: _fillingLayer.gameObject.SetActive(false); _outlineLayer.gameObject.SetActive(true); _outlineLayer.Draw(vh => DrawPoint(vh, pointModel, styleSet)); break; case LineModel lineModel: _fillingLayer.gameObject.SetActive(false); _outlineLayer.gameObject.SetActive(true); _outlineLayer.Draw(vh => DrawLine(vh, lineModel, styleSet)); break; case RectangleModel rectangleModel: { var style = styleSet; _fillingLayer.gameObject.SetActive(true); _outlineLayer.gameObject.SetActive(true); _fillingLayer.Draw(vh => DrawRectangleFilling(vh, rectangleModel, style)); _outlineLayer.Draw(vh => DrawRectangleOutline(vh, rectangleModel, style)); break; } } }
/// <summary> /// 根据ID获取对象空间坐标 /// </summary> /// <param name="boid"></param> /// <returns></returns> public List <GeometryModel> GetGeometryByID(string boid) { StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT BOID,GATHERID,NAME,T.GEOMETRY.MakeValid().STAsText() AS GEOMETRY,SOURCEDB FROM GEOMETRY T "); strSql.Append(" WHERE BOID =@BOID"); SqlParameter[] parameters = { new SqlParameter("BOID", SqlDbType.VarChar, 36) }; parameters[0].Value = boid; DataTable dt = SqlServerDBHelper.GetDataTable(strSql.ToString(), parameters); List <GeometryModel> list = new List <GeometryModel>(); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { GeometryModel model = new GeometryModel(); model.BOID = item["BOID"].ToString(); model.GATHERID = item["GATHERID"].ToString(); model.GEOMETRY = item["GEOMETRY"].ToString(); model.NAME = item["NAME"].ToString(); model.SOURCEDB = item["SOURCEDB"].ToString(); list.Add(model); } } return(list); }
public void ParseGeometryTest() { string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); string json = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json")); var settings = new JsonSerializerSettings(); settings.NullValueHandling = NullValueHandling.Ignore; settings.DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate; settings.MissingMemberHandling = MissingMemberHandling.Error; settings.Formatting = Formatting.Indented; settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); var fake = new PlayerMob(string.Empty, null); string newName = $"geometry.{DateTime.UtcNow.Ticks}.{new Random().NextDouble()}"; json = json.Replace("geometry.humanoid.custom", newName); fake.Skin.GeometryName = newName; fake.Skin.GeometryData = json; GeometryModel geometryModel = JsonConvert.DeserializeObject <GeometryModel>(json, settings); var state = new Code4FunPlugin.GravityGeometryBehavior(fake, geometryModel); state.FakeMeltTicking(fake, new PlayerEventArgs(null)); }
private void SetVelocity(GeometryModel model, Random random) { foreach (var geometry in model.Geometry) { SetVelocity(geometry, random); } }
public override void OnWorldIntitialize(World world) { for (int i = 1; i < 16; ++i) { TerrainCorner corners = ((i >> 0) % 2 == 1 ? TerrainCorner.FrontLeft : TerrainCorner.None) | ((i >> 1) % 2 == 1 ? TerrainCorner.FrontRight : TerrainCorner.None) | ((i >> 2) % 2 == 1 ? TerrainCorner.BackLeft : TerrainCorner.None) | ((i >> 3) % 2 == 1 ? TerrainCorner.BackRight : TerrainCorner.None); Face solidFaces = Face.Bottom | ((corners & TerrainCorner.All) == TerrainCorner.All ? Face.Top : Face.None) | ((corners & TerrainCorner.Left) == TerrainCorner.Left ? Face.Left : Face.None) | ((corners & TerrainCorner.Front) == TerrainCorner.Front ? Face.Front : Face.None) | ((corners & TerrainCorner.Right) == TerrainCorner.Right ? Face.Right : Face.None) | ((corners & TerrainCorner.Back) == TerrainCorner.Back ? Face.Back : Face.None); BlockType sand = BlockManager.Get("MarsMiner_Sand", i - 1); sand.SetComponant(new VisibilityBComponant(true, solidFaces)); sand.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners, "images_blocks_sand", "images_blocks_sandtri", "images_blocks_sand", "images_blocks_sandtri", "images_blocks_sand"))); BlockType rock = BlockManager.Get("MarsMiner_Rock", i - 1); rock.SetComponant(new VisibilityBComponant(true, solidFaces)); rock.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners, "images_blocks_rock", "images_blocks_rocktri", "images_blocks_rock", "images_blocks_rocktri", "images_blocks_rock"))); } BlockType boulder = BlockManager.Get("MarsMiner_Boulder"); boulder.SetComponant(new VisibilityBComponant(true, Face.All)); boulder.SetComponant(new ModelBComponant(GeometryModel.Cube("images_blocks_boulder"))); }
/// <summary> /// Callback when the trail drawing layer changes /// </summary> private void Drawing_ContentsChanged(GeometryModel <RedliningElement> model, GeometryModel <RedliningElement> .ContentsChangedEventArgs args) { CheckMenuItemStates(); // Send the trail model change on the databus Messenger.Send(new LiteMapTrailModelChangedMessage(this, model, args)); }
public async Task AddDiagramLines(MaterialModel materalModel, GeometryModel geometryModel, bool IsUpdate = false) { if (materalModel is null) { throw new ArgumentNullException(nameof(materalModel)); } if (geometryModel is null) { throw new ArgumentNullException(nameof(geometryModel)); } CreateMaterialAndGeometry(materalModel, geometryModel); var solver = new Solver(Material, Geometry); await solver.CalcAsync(0.5); if (!IsUpdate) { Results.Add(solver.List); ResultsAsPoint.Add(new List <Point>(solver.List.Select(c => new Point { X = c.M_Rd, Y = c.N_Rd }))); } else { Results[SelectedItemIndex] = solver.List; ResultsAsPoint[SelectedItemIndex] = new List <Point>(solver.List.Select(c => new Point { X = c.M_Rd, Y = c.N_Rd })); } }
static void Main(string[] args) { GeometryModel Mdl = Importer.Load <GeometryModel>("test.ext"); Console.WriteLine("Done!"); Console.ReadLine(); }
/// <summary> /// Creates a new instance of the <see cref="OperationMethod" /> class. /// </summary> /// <typeparam name="SourceType">The type of the source.</typeparam> /// <typeparam name="ResultType">The type of the result.</typeparam> /// <param name="identifier">The identifier.</param> /// <param name="name">The name.</param> /// <param name="remarks">The remarks.</param> /// <param name="isReversible">Indicates whether the method is reversible.</param> /// <param name="supportedModels">The supported models of the method.</param> /// <param name="supportedModes">The supported execution modes of the method.</param> /// <param name="parameters">The parameters of the method.</param> /// <returns>The <see cref="OperationMethod"/> instance produced by the method.</returns> /// <exception cref="System.ArgumentNullException">The identifier is null.</exception> public static OperationMethod CreateMethod <SourceType, ResultType>(String identifier, String name, String remarks, Boolean isReversible, GeometryModel supportedModels, ExecutionMode supportedModes, params OperationParameter[] parameters) { return(new OperationMethod(identifier, name, remarks, null, Version.Default, isReversible, typeof(SourceType), typeof(ResultType), supportedModels, supportedModes, parameters)); }
/// <summary> /// Initializes a new instance of the <see cref="SpectralOperationMethod" /> class. /// </summary> /// <param name="identifier">The identifier.</param> /// <param name="name">The name.</param> /// <param name="remarks">The remarks.</param> /// <param name="aliases">The aliases.</param> /// <param name="version">The version.</param> /// <param name="isReversible">Indicates whether the method is reversible.</param> /// <param name="spectralDomain">The spectral domain of the operation.</param> /// <param name="sourceType">The source type of the method.</param> /// <param name="resultType">The result type of the method.</param> /// <param name="supportedModels">The supported geometry models.</param> /// <param name="supportedFormats">The supported raster formats.</param> /// <param name="supportedModes">The supported execution modes of the method.</param> /// <param name="parameters">The parameters of the operation.</param> /// <exception cref="System.ArgumentNullException">The identifier is null.</exception> public SpectralOperationMethod(String identifier, String name, String remarks, String[] aliases, Version version, Boolean isReversible, SpectralOperationDomain spectralDomain, Type sourceType, Type resultType, GeometryModel supportedModels, RasterFormat supportedFormats, ExecutionMode supportedModes, params OperationParameter[] parameters) : base(identifier, name, remarks, aliases, version, isReversible, sourceType, resultType, supportedModels, supportedModes, parameters) { _supportedFormats = ExtractRasterFormats(supportedFormats); _spectralDomain = spectralDomain; }
private void CreateSphere(GeometryData geometry, Material material, Vector3 position, Vector3 scale) { var mesh = new GeometryMesh(geometry, material, Matrix.Identity); var model = new GeometryModel(); model.Add(mesh); (var sphereGeometry, var sphereTransform, var sphereBounds) = this.Geometry.Create(model); sphereTransform.MoveTo(position); sphereTransform.SetScale(scale); }
public static GeometryRender Create(Direct3d d3d, GeometryModel source) { GeometryRender render = null; //Create the geometry object based type switch (source.GetType().Name) { case "ConeModel": render = new ConeRender(d3d, source); break; case "CylinderModel": render = new CylinderRender(d3d, source); break; case "CuboidModel": render = new CuboidRender(d3d, source); break; case "LineModel": render = new LineRender(d3d, source); break; case "PointModel": render = new PointRender(d3d, source); break; case "RectangleModel": render = new RectangleRender(d3d, source); break; case "SphereModel": render = new SphereRender(d3d, source); break; case "RoundModel": render = new RoundRender(d3d, source); break; case "SingleEOSymbolModel": render = new SingleEOSymbolRender(d3d, source); break; default: break; } if (render != null) { render.Initialize( ); } return(render); }
private static void UpdateGeometry(ref GeometryModel incompleteGeometry, Vec <Coordinate> focusPosition) { switch (incompleteGeometry) { case RectangleModel rectangleModel: RectangleCreation.UpdateRectangle(rectangleModel, focusPosition); break; case LineModel lineModel: LineCreation.UpdateLine(lineModel, focusPosition); break; } }
/// <summary> /// 空间坐标是否存在 /// </summary> /// <param name="Geometry"></param> /// <returns></returns> public bool ExistGeometry(GeometryModel Geometry) { StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT BOID,NAME,T.GEOMETRY.GET_WKT() GEOMETRY,SOURCEDB FROM GEOMETRY T "); strSql.Append(" WHERE BOID =:BOID"); OracleParameter[] parameters = { new OracleParameter("BOID", OracleDbType.Varchar2, 36) }; parameters[0].Value = Geometry.BOID; return(OracleDBHelper.OracleHelper.ExecuteQueryText <GeometryModel>(strSql.ToString(), parameters).Count > 0 ? true : false); }
public IActionResult Save(GeometryModel model) { if (model.GeometryType == GeometryType.Line) { return(Json(model as GeometryLineModel)); } else if (model.GeometryType == GeometryType.Circle) { return(Json(model as GeometryCircleModel)); } return(new EmptyResult()); }
public GravityGeometryBehavior(PlayerMob mob, GeometryModel currentModel) { Mob = mob; CurrentModel = currentModel; var geometry = CurrentModel.CollapseToDerived(CurrentModel.FindGeometry(mob.Skin.GeometryName)); geometry.Subdivide(true, false); SetVelocity(geometry, new Random()); CurrentModel.Geometry.Clear(); CurrentModel.Geometry.Add(geometry); }
/// <summary> /// 空间坐标是否存在 /// </summary> /// <param name="Geometry"></param> /// <returns></returns> public bool ExistGeometry(GeometryModel Geometry) { StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT BOID,NAME,T.GEOMETRY.MakeValid().STAsText() AS GEOMETRY,SOURCEDB FROM GEOMETRY T "); strSql.Append(" WHERE BOID =@BOID"); SqlParameter[] parameters = { new SqlParameter("BOID", SqlDbType.VarChar, 36) }; parameters[0].Value = Geometry.BOID; return(SqlServerDBHelper.GetDataTable(strSql.ToString(), parameters).Rows.Count > 0 ? true : false); }
public IGeometryModel ReadGeometry(int lod) { if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount) { throw new ArgumentOutOfRangeException(nameof(lod)); } var model = new GeometryModel(Name) { CoordinateSystem = CoordinateSystem.Default }; model.Nodes.AddRange(Nodes); model.MarkerGroups.AddRange(MarkerGroups); model.Bounds.AddRange(BoundingBoxes); model.Materials.AddRange(Halo3Common.GetMaterials(Shaders)); foreach (var region in Regions) { var gRegion = new GeometryRegion { SourceIndex = Regions.IndexOf(region), Name = region.Name }; gRegion.Permutations.AddRange(region.Permutations.Where(p => p.SectionIndex >= 0).Select(p => new GeometryPermutation { SourceIndex = region.Permutations.IndexOf(p), Name = p.Name, MeshIndex = p.SectionIndex, MeshCount = 1 })); if (gRegion.Permutations.Any()) { model.Regions.Add(gRegion); } } Func <int, int, int> mapNodeFunc = null; if (Flags.HasFlag(ModelFlags.UseLocalNodes)) { mapNodeFunc = (si, i) => NodeMaps[si].Indices[i]; } model.Meshes.AddRange(Halo3Common.GetMeshes(cache, ResourcePointer, Sections, (s, m) => m.BoundsIndex = 0, mapNodeFunc)); CreateInstanceMeshes(model); return(model); }
public IGeometryModel ReadGeometry(int lod) { if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount) { throw new ArgumentOutOfRangeException(nameof(lod)); } using (var reader = cache.CreateReader(cache.DefaultAddressTranslator)) { var model = new GeometryModel(item.FileName()) { CoordinateSystem = CoordinateSystem.Default }; model.Nodes.AddRange(Nodes); model.MarkerGroups.AddRange(MarkerGroups); var shaderRefs = Shaders.Select(s => s.ShaderReference); model.Materials.AddRange(Halo1Common.GetMaterials(shaderRefs, reader)); foreach (var region in Regions) { var gRegion = new GeometryRegion { SourceIndex = Regions.IndexOf(region), Name = region.Name }; gRegion.Permutations.AddRange(region.Permutations.Select(p => new GeometryPermutation { SourceIndex = region.Permutations.IndexOf(p), Name = p.Name, MeshIndex = p.LodIndex(lod), MeshCount = 1 })); model.Regions.Add(gRegion); } if (cache.CacheType == CacheType.Halo1Xbox) { model.Meshes.AddRange(ReadXboxMeshes(reader)); } else { model.Meshes.AddRange(ReadPCMeshes(reader)); } return(model); } }
public static string ToJson(GeometryModel geometryModel) { var settings = new JsonSerializerSettings(); settings.NullValueHandling = NullValueHandling.Ignore; settings.DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate; settings.MissingMemberHandling = MissingMemberHandling.Error; //settings.Formatting = Formatting.Indented; settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); settings.Converters.Add(new StringEnumConverter { NamingStrategy = new CamelCaseNamingStrategy() }); return(JsonConvert.SerializeObject(geometryModel, settings)); }
public void SpawnFake(Player player, string name) { string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); //var bytes = Encoding.Default.GetBytes(new string('Z', 8192)); //byte[] skinData = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "test_skin.png")); byte[] skinData = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "IMG_0220.png")); string skinString = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json")); var random = new Random(); string newName = $"geometry.{DateTime.UtcNow.Ticks}.{random.NextDouble()}"; skinString = skinString.Replace("geometry.humanoid.custom", newName); GeometryModel geometryModel = Skin.Parse(skinString); PlayerLocation coordinates = player.KnownPosition; Vector3 direction = Vector3.Normalize(player.KnownPosition.GetHeadDirection()) * 1.5f; var fake = new PlayerMob(string.Empty, player.Level) { KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0) //KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, coordinates.HeadYaw + 180f, coordinates.Yaw + 180f) }; fake.Skin.Data = skinData; fake.Skin.SkinResourcePatch = new SkinResourcePatch() { Geometry = new GeometryIdentifier() { Default = newName } }; fake.Skin.GeometryName = newName; //fake.Skin.GeometryData = skinString; fake.Skin.GeometryData = Skin.ToJson(geometryModel); ; fake.SpawnEntity(); fake.SetPosition(new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0), true); var state = new GravityGeometryBehavior(fake, geometryModel); fake.Ticking += state.FakeMeltTicking; }
public IGeometryModel ReadGeometry(int lod) { if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount) { throw new ArgumentOutOfRangeException(nameof(lod)); } var model = new GeometryModel(Utils.GetFileName(item.FullPath)) { CoordinateSystem = CoordinateSystem.Default }; model.Nodes.AddRange(Nodes); model.MarkerGroups.AddRange(MarkerGroups); model.Bounds.AddRange(BoundingBoxes); model.Materials.AddRange(Halo5Common.GetMaterials(Materials)); foreach (var region in Regions) { var gRegion = new GeometryRegion { Name = region.Name }; gRegion.Permutations.AddRange(region.Permutations.Where(p => p.SectionIndex >= 0).Select(p => new GeometryPermutation { Name = p.Name, MeshIndex = p.SectionIndex, MeshCount = p.SectionCount })); if (gRegion.Permutations.Any()) { model.Regions.Add(gRegion); } } Func <int, int, int> mapNodeFunc = null; model.Meshes.AddRange(Halo5Common.GetMeshes(module, item, Sections, lod, s => 0, mapNodeFunc)); CreateInstanceMeshes(model, lod); return(model); }
protected void CopyFrom (TComponentModel alias) { if (alias.NotNull ()) { SettingsModel.CopyFrom (alias.SettingsModel); InfoModel.CopyFrom (alias.InfoModel); StatusModel.CopyFrom (alias.StatusModel); ImageModel.CopyFrom (alias.ImageModel); GeometryModel.CopyFrom (alias.GeometryModel); LayoutModel.CopyFrom (alias.LayoutModel); TextModel.CopyFrom (alias.TextModel); NodeModel.CopyFrom (alias.NodeModel); ContentModel.CopyFrom (alias.ContentModel); NodeModelCollection = new Collection<ExtensionNode> (alias.NodeModelCollection); ContentModelCollection = new Collection<ExtensionContent> (alias.ContentModelCollection); } }
/// <summary> /// Callback when the edit geometry selection changes /// </summary> void DrawingSelection_ContentsChanged(GeometryModel <RedliningElement> selection, GeometryModel <RedliningElement> .ContentsChangedEventArgs args) { if (!SettingUp && IsEditing && this.EditFeature != null) { if (selection.Count == 1) { var element = selection[0]; var field = element.Tag as FeatureGeometryFieldDescriptor; if (field != null) { // Get the geometry var geometry = element.Geometry; // Set the geometry EditFeature[field] = geometry; } } } }
public void SpawnFake(Player player, string name) { string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); //var bytes = Encoding.Default.GetBytes(new string('Z', 8192)); byte[] bytes = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "test_skin.png")); //byte[] bytes = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "IMG_0220.png")); string skinString = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json")); var random = new Random(); string newName = $"geometry.{DateTime.UtcNow.Ticks}.{random.NextDouble()}"; skinString = skinString.Replace("geometry.humanoid", newName); GeometryModel geometryModel = Skin.Parse(skinString); var coordinates = player.KnownPosition; var direction = Vector3.Normalize(player.KnownPosition.GetHeadDirection()) * 1.5f; PlayerMob fake = new PlayerMob(string.Empty, player.Level) { Skin = new Skin { SkinId = "testing", Slim = false, SkinData = bytes, CapeData = new byte[0], SkinGeometryName = newName, SkinGeometry = skinString }, KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0) //KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, coordinates.HeadYaw + 180f, coordinates.Yaw + 180f) }; fake.SpawnEntity(); fake.SetPosition(new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0), true); GravityGeometryBehavior state = new GravityGeometryBehavior(fake, geometryModel); fake.Ticking += state.FakeMeltTicking; }
// GeometryModelからPOSTデータを作成 private static FormUrlEncodedContent GetContent(GeometryModel geometry) { var nameValues = geometry switch { GeometryLineModel line => new Dictionary <string, string> { { nameof(GeometryModel.GeometryType), line.GeometryType.ToString() }, { nameof(GeometryLineModel.X1), line.X1.ToString() }, { nameof(GeometryLineModel.Y1), line.Y1.ToString() }, { nameof(GeometryLineModel.X2), line.X2.ToString() }, { nameof(GeometryLineModel.Y2), line.Y2.ToString() }, }, GeometryCircleModel circle => new Dictionary <string, string> { { nameof(GeometryModel.GeometryType), circle.GeometryType.ToString() }, { nameof(GeometryCircleModel.R), circle.R.ToString() }, { nameof(GeometryCircleModel.X), circle.X.ToString() }, { nameof(GeometryCircleModel.Y), circle.Y.ToString() }, }, _ => throw new ArgumentException(nameof(geometry)), }; return(new FormUrlEncodedContent(nameValues)); }
/// <summary> /// 添加空间坐标 /// </summary> /// <param name="Geometry"></param> /// <returns></returns> public bool InsertGeometry(GeometryModel Geometry) { StringBuilder strInsertSql = new StringBuilder(); strInsertSql.Append(" INSERT INTO GEOMETRY( "); strInsertSql.Append(" BOID,NAME,GATHERID,GEOMETRY,SOURCEDB)"); strInsertSql.Append(" VALUES (:BOID,:NAME,GATHERID,SDO_GEOMETRY(:GEOMETRY,4326),:SOURCEDB)"); OracleParameter[] parameters = { new OracleParameter("BOID", OracleDbType.Varchar2, 36), new OracleParameter("NAME", OracleDbType.Varchar2, 50), new OracleParameter("GATHERID", OracleDbType.Varchar2, 36), new OracleParameter("GEOMETRY", OracleDbType.Clob), new OracleParameter("SOURCEDB", OracleDbType.Varchar2, 50) }; parameters[0].Value = Geometry.BOID; parameters[1].Value = Geometry.NAME; parameters[2].Value = Geometry.GATHERID; parameters[3].Value = Geometry.SOURCEDB; return(OracleDBHelper.OracleHelper.ExecuteSql(strInsertSql.ToString(), parameters) > 0 ? true : false); }
/// <summary> /// 添加空间坐标 /// </summary> /// <param name="Geometry"></param> /// <returns></returns> public bool InsertGeometry(GeometryModel Geometry) { StringBuilder strInsertSql = new StringBuilder(); strInsertSql.Append(" INSERT INTO GEOMETRY( "); strInsertSql.Append(" BOID,NAME,GATHERID,GEOMETRY,SOURCEDB)"); strInsertSql.Append(" VALUES (@BOID,@NAME,GATHERID,GEOGRAPHY::STGeomFromText(@GEOMETRY, 4326),@SOURCEDB)"); SqlParameter[] parameters = { new SqlParameter("BOID", SqlDbType.VarChar, 36), new SqlParameter("NAME", SqlDbType.VarChar, 50), new SqlParameter("GATHERID", SqlDbType.VarChar, 36), new SqlParameter("GEOMETRY", SqlDbType.Binary), new SqlParameter("SOURCEDB", SqlDbType.VarChar, 50) }; parameters[0].Value = Geometry.BOID; parameters[1].Value = Geometry.NAME; parameters[2].Value = Geometry.GATHERID; parameters[3].Value = Geometry.SOURCEDB; return(SqlServerDBHelper.ExecuteCommand(strInsertSql.ToString(), parameters) > 0 ? true : false); }
/// <summary> /// 修改空间坐标 /// </summary> /// <param name="Geometry"></param> /// <returns></returns> public bool UpdateGeometry(GeometryModel Geometry) { StringBuilder strUpdateSql = new StringBuilder(); strUpdateSql.Append(" UPDATE GEOMETRY SET GATHERID=:GATHERID"); strUpdateSql.Append(" SOURCEDB=:SOURCEDB,GEOMETRY=SDO_GEOMETRY(:GEOMETRY,4326)),NAME=:NAME"); strUpdateSql.Append(" WHERE BOID=:BOID "); OracleParameter[] parameters = { new OracleParameter("GATHERID", OracleDbType.Varchar2, 50), new OracleParameter("SOURCEDB", OracleDbType.Clob), new OracleParameter("GEOMETRY", OracleDbType.Varchar2, 36), new OracleParameter("NAME", OracleDbType.Varchar2, 50), new OracleParameter("BOID", OracleDbType.Varchar2, 36) }; parameters[0].Value = Geometry.GATHERID; parameters[1].Value = Geometry.SOURCEDB; parameters[2].Value = Geometry.GEOMETRY; parameters[3].Value = Geometry.NAME; parameters[3].Value = Geometry.BOID; return(OracleDBHelper.OracleHelper.ExecuteSql(strUpdateSql.ToString(), parameters) > 0 ? true : false); }
public PlaceModel() { OpeningHours = new OpeningHoursModel(); Geometry = new GeometryModel(); }