示例#1
0
        /// <summary>
        /// 插入从MapServer获取到的JSON数据
        /// </summary>
        /// <param name="features"></param>
        /// <returns></returns>
        public static int InsertFeaturesByJson(this IFeatureClass featureClass, JArray features)
        {
            int featureNum = 0;

            try
            {
                IFeatureCursor cursor = featureClass.Insert(true);
                foreach (JObject feature in features)
                {
                    try
                    {
                        IFeatureBuffer buffer = featureClass.CreateFeatureBuffer();
                        buffer.SetShapeByJson(feature.Value <JObject>("geometry"));
                        buffer.SetAttrsByJson(feature.Value <JObject>("attributes"));
                        cursor.InsertFeature(buffer);
                    }
                    catch (Exception ex)
                    {
                        // Logger.log("ZFeatureClass.InsertFeaturesByJson", ex);
                    }
                    featureNum++;
                }
                cursor.Flush();
            }
            catch (Exception ex)
            {
                throw new Exception($"将JSON数据插入图层【{featureClass.AliasName}】时报错", ex);
            }
            return(featureNum);
        }