POST
|
This doesn't answer Wasim's authentication question but I am grateful for his code sample. I was able to use it to connect to our homegrown ArcGIS feature services to create an IFeatureClass that I can work with in my ArcMap Add-In. Here is my VB .NET code: Public Function BA_OpenFeatureClassFromService(ByVal url As String, ByVal layerId As Integer) As IFeatureClass Dim sipPs As IPropertySet = New PropertySet() Dim sipWSF As IWorkspaceFactory = New FeatureServiceWorkspaceFactory() Dim sipWS As IWorkspace = Nothing Dim sipFws As IFeatureWorkspace = Nothing Try 'Trim any data after "FeatureServer" in url Dim idxFs As Integer = url.IndexOf("FeatureServer") url = url.Substring(0, (idxFs + "FeatureServer".Length)) sipPs.SetProperty("DATABASE", url) sipWS = sipWSF.Open(sipPs, 0) sipFws = CType(sipWS, IFeatureWorkspace) Dim strLayerId As String = CType(layerId, String) Return sipFws.OpenFeatureClass(strLayerId) Catch ex As Exception Debug.Print("BA_OpenFeatureClassFromService Exception: " & ex.Message) Return Nothing Finally sipPs = Nothing sipWS = Nothing sipFws = Nothing GC.WaitForPendingFinalizers() GC.Collect() End Try End Function
... View more
01-22-2016
09:47 AM
|
0
|
0
|
658
|
POST
|
Hi Alexander ~ After further research, I believe you are correct. I'd like to add to this discussion that I found the IDatasetNameFileStat2 to be a more efficient interface to use for this purpose (for vector data) as you only have to get a handle to the IDatasetName rather than having to open the dataset. It is unfortunate that ESRI does not manage this attribute for raster data sets in FGDB format. I found that it does work for rasters stored in a plain file system. Thanks -- Lesley
... View more
01-05-2015
09:58 AM
|
0
|
0
|
235
|
POST
|
I need to retrieve the date modified for each feature class and raster in a file geodatabase. I have been able to accomplish this using the IDatasetFileStat interface for the feature classes using the methodology described here. However, I've been unable to find a raster class that implements the IDatasetFileStat. The documentation indicates that the RasterDataset should implement this interface but when I try to cast it, I get an InvalidCastException. pGDS = BA_OpenRasterFromGDB(gdbPath, layerRasterList(i)) 'My custom function that opens a raster and returns IGeodataset If pGDS IsNot Nothing Then pRasterBandCollection = CType(pGDS, IRasterBandCollection) 'Explicit cast pRasterBand = pRasterBandCollection.Item(0) Dim myTest As RasterDataset = pRasterBand.RasterDataset pDFS = CType(myTest, IDatasetFileStat) 'Invalid cast exception occurs here Dim intSeconds As Integer = pDFS.StatTime(esriDatasetFileStatTimeMode.esriDatasetFileStatTimeLastModification) Any suggestions?
... View more
12-30-2014
06:19 PM
|
0
|
2
|
4423
|
POST
|
For anyone seeking to do this in VB, this code (slightly different) works for me: Dim codeBase As String = System.Reflection.Assembly.GetExecutingAssembly.CodeBase
Dim uriBuilder As UriBuilder = New UriBuilder(codeBase)
Dim path As String = Uri.UnescapeDataString(uriBuilder.Path)
Return System.IO.Path.GetDirectoryName(path) I can then create the full path to my file by appending a backslash and my file name.
... View more
09-10-2013
02:19 PM
|
0
|
0
|
555
|
POST
|
Good suggestion. Unfortunately the ArcGISImageService does not appear to support dynamic layers. Our application design requires the ability to swap out the underlying data source which is supported by the ArcGISMapService. Thanks -- Lesley
... View more
06-21-2013
10:04 AM
|
0
|
0
|
662
|
POST
|
I am able to successfully change the LayerDataSource of an ArcGISDynamicMapServiceLayer using Javascript. However, when I change the data source I lose the symbology associated with the original map service. The map renders in black and white. The catch is that the underlying data source is raster data rather than vector data. I've been unable to find a Javascript API to modify the symbology for raster data. What am I missing?
... View more
06-20-2013
08:40 AM
|
1
|
6
|
2136
|
POST
|
I think this works a little differently if you are using add-ins vs. traditional VB .NET. I am using add-ins and was unable to get the UserData solution to work for me. I found this blog posting from 'Geospatial Scott'. Hopefully it will help. The example is in C#. http://geospatialscott.blogspot.com/2010/08/how-to-get-arcgis-add-in-dockable.html Once you have the handle to the UI (form) you should be able to access the textbox. I was able to adapt the solution for my needs and I am working in VB .NET.
... View more
11-08-2010
05:50 AM
|
0
|
0
|
838
|
POST
|
I have been able to run some relatively simple unit tests (calling the VB .NET ArcObjects api with NUnit 2.5.7) and am sharing my findings since information on this topic is sparse. In the TestFixtureSetUp() sub you need to use the AoInitialize Interface to initialize the test application with a suitable license. I think this requirement was added in 9.2. Private m_ao As ESRI.ArcGIS.esriSystem.IAoInitialize m_ao = New ESRI.ArcGIS.esriSystem.AoInitialize() m_ao.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeArcInfo) Starting in ArcGIS 10, you also need to bind to a particular ArcGIS product before calling ArcObjects code. I included this call in TestFixtureSetUp() method as well. Dim bound As Boolean = ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop) If you need a handle to the IApplication interface, this article is helpful. It is called "How to automate ArcGIS desktop applications" Be sure to shutdown the IAOInitialize interface and the IApplication interface (if it was created) in the TestFixtureTearDown() sub. Shutting down the IAOInitialize interface should be the last call to ArcObjects in an application. If m_application IsNot Nothing Then Dim docDirtyFlag As IDocumentDirty2 = DirectCast(m_application.Document, IDocumentDirty2) docDirtyFlag.SetClean() m_application.Shutdown() End If m_ao.Shutdown()
... View more
09-14-2010
08:54 AM
|
0
|
1
|
313
|
POST
|
We opened a support case with ESRI and they recommended AGSDESKTOPJAVA as the replacement for ARCGISHOME in ArcGIS 10.
... View more
09-08-2010
06:46 AM
|
0
|
0
|
613
|
POST
|
So, as usual, I was way overthinking this. A better way to accomplish my goal is to create a button control for each item on my menu. Button controls have images associated with them. Configure buttons under the Items property of Menu. And voila! BTW, if you want to disable a button at startup, you need to set the onDemand property to false in the XML. This is in the doc but I didn't see it right away.
... View more
08-26-2010
01:13 PM
|
0
|
0
|
185
|
POST
|
I need to add an image to some items in my multi-item collection to be displayed in a dropdown menu. First question is how to add images to an add-in project. I know that they have to be added so that they can be included in the packaged add-in file. Just copying them into the /images directory in the add-in project folder doesn't seem to work. Second question is how to access them in the customized multi-item class. MultiItem.Item.Image property requires a System.Drawing.Image object. I've tried to create this with Image.FromFile method which requires a system path. The only thing that works is the complete path to the image on my machine which isn't pointed at the add-in and obviously wouldn't work anywhere else. Thoughts?
... View more
08-26-2010
11:20 AM
|
0
|
1
|
297
|
POST
|
Here is my code for popping a Dockable Window from a Button in and add-in where 'DockableWindow1' is the class name for the dockable window class generated by the ESRI add-in wizard. Protected Overrides Sub OnClick() Dim dockWindow As ESRI.ArcGIS.Framework.IDockableWindow ' Only get/create the dockable window if it's not there If dockWindow Is Nothing Then Dim dockWinID As UID = New UIDClass() dockWinID.Value = My.ThisAddIn.IDs.DockableWindow1 dockWindow = My.ArcMap.DockableWindowManager.GetDockableWindow(dockWinID) End If dockWindow.Show((Not dockWindow.IsVisible())) End Sub
... View more
08-26-2010
11:08 AM
|
0
|
0
|
1336
|
POST
|
I think the easiest way to accomplish this in v10 is to use the Add-In framework. The ESRI templates from the SDK make it pretty easy. If you add a Dockable Window component to your add-in, you'll have access to the form designer to add fields, buttons, etc. There is also a code view like VBA for responding to form events. Good luck!
... View more
08-26-2010
11:02 AM
|
0
|
0
|
147
|
POST
|
I was able to pop a context menu this morning with the following code. This is called from a button on a dockable window. Hope it helps someone... Private Sub btnContext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnContext.Click Dim contextMenuID As UID = New UIDClass() ' id property of menu from Config.esriaddinx document contextMenuID.Value = "Dharma_Inst_CustomUIElements_Context_Menu" Dim document As ESRI.ArcGIS.Framework.IDocument = My.ArcMap.Document Dim menu As ESRI.ArcGIS.Framework.ICommandBar = TryCast(document.CommandBars.Find(contextMenuID, False, False), ESRI.ArcGIS.Framework.ICommandBar) ' pop context menu at mouse position menu.Popup(0, 0) End Sub
... View more
08-25-2010
07:37 AM
|
1
|
0
|
410
|
Title | Kudos | Posted |
---|---|---|
1 | 08-25-2010 07:37 AM | |
1 | 06-20-2013 08:40 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|