sharpmap / sharpmap.businessobjects Goto Github PK
View Code? Open in Web Editor NEWSharpMap with business objects
License: GNU Lesser General Public License v2.1
SharpMap with business objects
License: GNU Lesser General Public License v2.1
I have been trialing a BusinessObjectFilterProvider class following SharpMap FilterProvider:
namespace SharpMap.Data.Providers.Business
{
public abstract class BusinessObjectFilterProvider
{
public delegate bool FilterMethod(object bo);
public FilterMethod FilterDelegate { get; set; }
}
}
Inherited by:
public class BusinessObjectProvider<TFeature> : BusinessObjectFilterProvider, IProvider
Requests based upon geometric selection are filtered similar to:
public Collection<IGeometry> GetGeometriesInView(Envelope bbox)
{
var res = new Collection<IGeometry>();
foreach (TFeature feature in _source.Select(bbox))
{
if (FilterDelegate == null || FilterDelegate(feature))
{
res.Add(_source.GetGeometry(feature));
}
}
return res;
}
I have been using on InMemory objects.
Let me know if this would be useful to the project and I can issue pull request.
I'm wondering if it would be possible to use InMemoryBuisnessObjectSource as the primary collection of business objects, rather than managing a separate parallel collection as the primary source.
It would require several additional methods for efficient management of objects such as:
InsertFeature
Add a single business object to the collection, with CachedExtents expanding to include the feature
SelectFeatures
Select features based upon object attributes using lambda expression.
DeleteFeatures
Delete features based upon object attributes using lambda expression.
Would this be compatible with overall project? While I would like to contribute, I'm not sure how to achieve the last 2 in C#.
Hi and thanks for SharpMap.BusinessObjects - it's a great idea, much appreciated.
Small issue: SharpMap.BusinessObjects doesn't compile initially as SQLite.Interop.dll (x86 and x64) is not part of source code. I am currently working with InMemory so have excluded from the project in order to compile.
Working with InMemory objects, I am occasionally getting error Collection was modified; enumeration operation may not execute
. I will add locking on InMemoryBusinessObjectSource and submit pull request.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.