iProvider.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:4k
源码类别:

GIS编程

开发平台:

C#

  1. // Copyright 2005, 2006 - Morten Nielsen (www.iter.dk)
  2. //
  3. // This file is part of SharpMap.
  4. // SharpMap is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU Lesser General Public License as published by
  6. // the Free Software Foundation; either version 2 of the License, or
  7. // (at your option) any later version.
  8. // 
  9. // SharpMap is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. // GNU Lesser General Public License for more details.
  13. // You should have received a copy of the GNU Lesser General Public License
  14. // along with SharpMap; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Collections.ObjectModel;
  19. using System.Text;
  20. namespace SharpMap.Data.Providers
  21. {
  22. /// <summary>
  23. /// Interface for data providers
  24. /// </summary>
  25. public interface IProvider : IDisposable
  26. {
  27. /// <summary>
  28. /// Gets the features within the specified <see cref="SharpMap.Geometries.BoundingBox"/>
  29. /// </summary>
  30. /// <param name="bbox"></param>
  31. /// <returns>Features within the specified <see cref="SharpMap.Geometries.BoundingBox"/></returns>
  32.         System.Collections.ObjectModel.Collection<SharpMap.Geometries.Geometry> GetGeometriesInView(SharpMap.Geometries.BoundingBox bbox);
  33. /// <summary>
  34. /// Returns all objects whose <see cref="SharpMap.Geometries.BoundingBox"/> intersects 'bbox'.
  35. /// </summary>
  36. /// <remarks>
  37. /// This method is usually much faster than the QueryFeatures method, because intersection tests
  38. /// are performed on objects simplifed by their <see cref="SharpMap.Geometries.BoundingBox"/>, and using the Spatial Index
  39. /// </remarks>
  40. /// <param name="bbox">Box that objects should intersect</param>
  41. /// <returns></returns>
  42.         System.Collections.ObjectModel.Collection<uint> GetObjectIDsInView(SharpMap.Geometries.BoundingBox bbox);
  43. /// <summary>
  44. /// Returns the geometry corresponding to the Object ID
  45. /// </summary>
  46. /// <param name="oid">Object ID</param>
  47. /// <returns>geometry</returns>
  48. SharpMap.Geometries.Geometry GetGeometryByID(uint oid);
  49. /// <summary>
  50. /// Returns the data associated with all the geometries that are intersected by 'geom'
  51. /// </summary>
  52. /// <param name="geom">Geometry to intersect with</param>
  53. /// <param name="ds">FeatureDataSet to fill data into</param>
  54. void ExecuteIntersectionQuery(SharpMap.Geometries.Geometry geom, FeatureDataSet ds);
  55. /// <summary>
  56. /// Returns the data associated with all the geometries that are intersected by 'geom'
  57. /// </summary>
  58. /// <param name="box">Geometry to intersect with</param>
  59. /// <param name="ds">FeatureDataSet to fill data into</param>
  60. void ExecuteIntersectionQuery(SharpMap.Geometries.BoundingBox box, FeatureDataSet ds);
  61. /// <summary>
  62. /// Returns the number of features in the dataset
  63. /// </summary>
  64. /// <returns>number of features</returns>
  65. int GetFeatureCount();
  66. /// <summary>
  67. /// Returns a <see cref="SharpMap.Data.FeatureDataRow"/> based on a RowID
  68. /// </summary>
  69. /// <param name="RowID"></param>
  70. /// <returns>datarow</returns>
  71. SharpMap.Data.FeatureDataRow GetFeature(uint RowID);
  72. /// <summary>
  73. /// <see cref="SharpMap.Geometries.BoundingBox"/> of dataset
  74. /// </summary>
  75. /// <returns>boundingbox</returns>
  76. SharpMap.Geometries.BoundingBox GetExtents();
  77. /// <summary>
  78. /// Gets the connection ID of the datasource
  79. /// </summary>
  80. /// <remarks>
  81. /// <para>The ConnectionID should be unique to the datasource (for instance the filename or the
  82. /// connectionstring), and is meant to be used for connection pooling.</para>
  83. /// <para>If connection pooling doesn't apply to this datasource, the ConnectionID should return String.Empty</para>
  84. /// </remarks>
  85. string ConnectionID { get; }
  86. /// <summary>
  87. /// Opens the datasource
  88. /// </summary>
  89. void Open();
  90. /// <summary>
  91. /// Closes the datasource
  92. /// </summary>
  93. void Close();
  94. /// <summary>
  95. /// Returns true if the datasource is currently open
  96. /// </summary>
  97. bool IsOpen { get; }
  98. /// <summary>
  99. /// The spatial reference ID (CRS)
  100. /// </summary>
  101. int SRID { get; set;}
  102. }
  103. }