我是靠谱客的博主 健壮牛排,最近开发中收集的这篇文章主要介绍根据SDE图层名称,判断Geometry类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

方法一:通过代码  

   /// <summary>
        /// 根据SDE图层名称,判断Geometry类型
        /// </summary>
        /// <param name="TargetLayerName">图层名称</param>
        /// <returns>返回Geometry类型,如:ST_POINT;ST_LINESTRING;ST_POLYGON</returns>
        public static string GetTargetLayerGeometryType(string TargetLayerName)
        {
            string strsql = "SELECT t.Shape.entity ENTITY FROM " + TargetLayerName + " t";
            DataSet ds = DBQueryUtil.ExecuteQuery(strsql);
            string GeometryType = ds.Tables[0].Rows[0]["ENTITY"].ToString();
            if (GeometryType == "1")
            {
                return "ST_POINT";//\1为ST_POINT;4为ST_LINESTRING;8为ST_POLYGON

            }
            else if (GeometryType == "4")
            {
                return "ST_LINESTRING";
            }
            else
            {
                return "ST_POLYGON";
            }
        }

方法二:oracle 脚本函数或存储过程

  --------------------Func_CheckGeometryType-------

  -------判断坐标构造成的几何对象,是否为st_point or st_ST_LINESTRING or st_polygon------------------
  function Func_CheckGeometryType(geometry varchar2,markType varchar2)      return number
     as
     geometryType varchar2(50);
     mType varchar2(50);
    
     begin
     select sde.st_geometrytype(sde.st_geometry (geometry, 0)) into geometryType from dual;
     mType :=upper(markType);
     if (mType = 'LINE') then
         mType :='ST_' || mType || 'STRING';
     else
         mType := 'ST_' || mType;
     end if;
    
     if (geometryType = mType) then
        return 1;
     else
        return 0;
     end if;
  end Func_CheckGeometryType;

转载于:https://www.cnblogs.com/kidbird/archive/2010/11/01/GeometryType.html

最后

以上就是健壮牛排为你收集整理的根据SDE图层名称,判断Geometry类型的全部内容,希望文章能够帮你解决根据SDE图层名称,判断Geometry类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部