/// <summary> /// 插入从MapServer获取到的JSON数据 /// </summary> /// <param name="features"></param> /// <returns></returns> public int InsertFeaturesByJson(JArray features) { int featureNum = 0; try { ZFeatureCursor cursor = Insert(true); foreach (JObject feature in features) { try { ZFeatureBuffer buffer = 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) { Logger.log("ZFeatureClass.InsertFeaturesByJson", ex); } return(featureNum); }
/// <summary> /// 是否存在记录 /// </summary> /// <param name="filter"></param> /// <returns></returns> public bool HasRecord(ZFilter filter) { using (ZFeatureCursor cursor = Search(filter)) { return(cursor.NextFeature() != null); } }
/// <summary> /// 从另一张表复制数据 /// </summary> /// <param name="ZFClass"></param> /// <param name="clear">是否清空原数据</param> public void CopyFrom(ZFeatureClass ZFClass, bool clear = false) { if (clear) { Delete(); } ZFeatureCursor cursor = ZFClass.Search(); CopyFrom(cursor); }
/// <summary> /// 从查询结果复制数据 /// </summary> /// <param name="cursor"></param> public void CopyFrom(ZFeatureCursor cursor) { IFeatureCursor this_cursor = featureClass.Insert(true); ZFeature feature = null; while (null != (feature = cursor.NextFeature())) { IFeatureBuffer buffer = featureClass.CreateFeatureBuffer(); buffer.Shape = feature.Shape.geometry; for (int i = 0; i < featureClass.Fields.FieldCount; i++) { buffer.Value[i] = feature.GetValue(i); } this_cursor.InsertFeature(buffer); } this_cursor.Flush(); }