public ICachedVectorData Request(string shpFileName) { string identify = CachedVectorData.GetIdenfity(shpFileName); if (identify == null) { return(null); } if (_cachedDatas.ContainsKey(identify)) { _refCounteds[identify]++; return(_cachedDatas[identify]); } else { ICachedVectorData data = null; if (_coordTransform == null) { data = new CachedVectorData(shpFileName); } else { data = new CachedVectorData(shpFileName, _coordTransform); } _cachedDatas.Add(data.Identify, data); _refCounteds.Add(data.Identify, 1); return(data); } }
private IGrid ReadGridFromCacher(int gridNo, out bool isOK) { isOK = false; ICachedVectorData cache = GlobalCacher.VectorDataGlobalCacher.GetData(_fileUrl); if (cache == null) { return(null); } if (_cacheIdentify == null) { _cacheIdentify = cache.Identify; } Envelope evp = _gridStateIndicator.GetEnvelope(gridNo); Feature[] features; if (cache.CoordType == enumCoordinateType.Geographic) { features = cache.GetFeatures(evp); isOK = true; return(new Grid(gridNo, evp, features)); } else if (cache.CoordType == enumCoordinateType.Projection) { _featureClass.RuntimeProjecter.Project(evp); features = cache.GetFeatures(evp); if (features != null) { foreach (Feature fet in features) { fet.Projected = true; } } IGrid grid = new Grid(gridNo, evp, features); grid.CoordIsConverted = true; isOK = true; return(grid); } return(null); }