Select to view content in your preferred language

Pug-In Data Sources

948
3
05-14-2010 06:54 AM
JamesStreet
Emerging Contributor
I need to add a custom data format and from what I can see, plug-in data sources is the way to go. I basically this custom data format to behave like a regular SDE Feature Class and be able to copy from this to an SDE database  and display in ArcMap and ArcGIS Server etc.

From what I have read the only limitation is that it is readonly. Has anyone had any experience with plug-in data sources and possibly any other limitations?

I did try the simple point example that is provided and worked create within ArcMap but I couldn't get ArcGIS Server to recognize the layer in the mxd of my map service.

Thanks in Advance.
0 Kudos
3 Replies
KirkKuykendall
Deactivated User
I implemented a plugin datasource for a project for vehicle tracking.  The samples lead you to think the data needs to be on disk, but we got it to use an in memory list of vehicles.  So while you can't use the editor to edit a plugin datasource, you can have tools that change the data.

Installation of plugins is a bit tricky, remembering to re-register the PluginWorkspaceFactory dll is a common source of pain.

A plug-in workspace factory helper should be registered in the component category ESRI PlugIn Workspace Factory Helpers. PlugInWorkspaceFactory.dll should then be reregistered (this file is found in the ArcGIS installation bin folder). This reregistration will register the CLSID returned by WorkspaceFactoryTypeID in the ESRI Workspace Factories and ESRI Gx Enabled Workspace Factories categories.

http://resources.esri.com/help/9.3/arcgisengine/dotnet/f4ce6eb3-606c-4aa1-a7ba-28abaa81f930.htm#Impl...

A major annoyance for me is the COMException you're required to throw:
Implementation of NextRecord must raise an error if there are no more rows to fetch.


Hopefully this has changed for 10.0, but I haven't checked.
0 Kudos
JamesStreet
Emerging Contributor
Would you recommend this approach over custom layers?
0 Kudos
KirkKuykendall
Deactivated User
If you go with a plugin datasource, you can use Featurelayers to display your data, so all the tools (except for editing tools) that work with featurelayers will work a featurelayer that uses your plugin. (Attribute tables, Identify, Data export etc.)

If use of these OOTB featurelayer tools is not important, I'd go with a inheriting BaseCustomLayer.

Another option might be inheriting from FeaturelayerClass,  I played around with this a bit and have seen threads of others doing this too, but I've never thoroughly tested it.
0 Kudos