///<inheritdoc/> public (string, IndexEntry <T>) Insert(Geometry geom, T value) { var key = _geohasher.Encode(geom, _precision); var entry = new IndexEntry <T> { Geom = geom, Value = value }; _trieMap.Add(key, entry); return(key, entry); }
///<inheritdoc/> public (string, IndexEntry <T>) Insert(Geometry geom, T value) { if (_reverseIndex.ContainsKey(value)) { throw new InvalidOperationException($"This value already exists in the index. Use {nameof(InsertOrUpdate)} instead"); } var key = _geohasher.Encode(geom, _precision); var entry = new IndexEntry <T> { Geom = geom, Value = value }; _trieMap.Add(key, entry); _reverseIndex[value] = entry; return(key, entry); }