POST
|
Thank you both for the answers. Although I eventually did it with a different way you helped me very much. I eventually used one loop passing the pFeature from another procedures and using the Boundary property of ITopologicalOperator Inteface. Many thanks again. I have given points to both of you.
... View more
01-30-2012
08:51 PM
|
0
|
0
|
224
|
POST
|
I have two feature layers. The first one is just a polygon and the other one consists of a series of polygons which are enclosed by the first one. Thus, some polygons of the second feature layer touch on the boundaries of the first feauture layer. I wrotre a code (the basic part shown below to identify which polygons of the second layer touches the boundary of the polygon in the first layer but while the code runs without a problem it does not identify (e.g. by giving FID with Msgbox) any such polygon whilsty it should. Any help please? Dim pBlockBoundaryFC As IFeatureClass Set pBlockBoundaryFC = pBlockBoundary.FeatureClass Dim pBlockBoundaryFields As IFields Set pBlockBoundaryFields = pBlockBoundaryFC.Fields Dim pGeom As IGeometry Dim pSpatialFilter As ISpatialFilter Set pSpatialFilter = New SpatialFilter Dim pBlockBoundaryCursor As IFeatureCursor Set pBlockBoundaryCursor = pBlockBoundaryFC.Search(pSpatialFilter, False) Set pBlockBoundaryFeature = pBlockBoundaryCursor.NextFeature Do Until pBlockBoundaryFeature Is Nothing Set pGeom = pBlockBoundaryFeature.Shape With pSpatialFilter Set .Geometry = pGeom .GeometryField = "Shape" .SpatialRel = esriSpatialRelTouches End With Dim pRelOp As IRelationalOperator Set pRelOp = pGeom Set pNewParcelsFeature = pNewParcelsCursor.NextFeature Do Until pNewParcelsFeature Is Nothing FID = pNewParcelsFeature.Value(intposFID) If pRelOp.Touches(pNewParcelsFeature.Shape) Then ''Report the FID of each parcel that 'touches' the exetrnal boundary MsgBox FID End If Set pNewParcelsFeature = pNewParcelsCursor.NextFeature Loop Set pBlockBoundaryFeature = pBlockBoundaryCursor.NextFeature Loop
... View more
01-29-2012
10:14 PM
|
0
|
3
|
1868
|
POST
|
I have the following script language code shown below within a main code just to run the tool of spatial analyst "Extract by mask". Unfortunately, when I run it I get a Run Time Error. I checked file names etc. but I cannot find the problem. Could anybody help me please? Thanks. Dim GP As Object Set GP = CreateObject("esriGeoprocessing.GpDispatch.1") GP.AddToolbox "C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Spatial Analyst Tools.tbx" InRaster = "C:\LACONISS\LandSpaCES\valuationmapr" InMask = "C:\LACONISS\LandSpaCES\Parcel165" OutRaster = "C:\LACONISS\LandSpaCES\ParcelR165" GP.CheckOutExtension ("Spatial") GP.ExtractByMask_sa InRaster, InMask, OutRaster
... View more
12-15-2011
10:37 AM
|
0
|
1
|
583
|
POST
|
Yes, Duncan. You are right! That was the mistake. Thank you very much. Demetris
... View more
10-18-2011
02:08 AM
|
0
|
0
|
264
|
POST
|
I use the following nested loops to read the first point feature of a dataset and the rest points in that dataset. Then read the second point feature of a dataset and the rest points in that dataset and so on. The problem with these nested loops is that it reads the first point and the rest points only once. Why this happens? Dim pFCursor As IFeatureCursor Set pFCursor = pFeatureClass.Search(Nothing, True) Dim pFCursor2 As IFeatureCursor Set pFCursor2 = pFeatureClass.Search(Nothing, True) Dim pFeature As IFeature Dim pFeature2 As IFeature Dim pPointA As IPoint Dim pPointB As IPoint Set pFeature = pFCursor.NextFeature Do Until pFeature Is Nothing Set pPointA = pFeature.Shape MsgBox pFeature.Value(intPosFID) & "F1" Set pFeature2 = pFCursor2.NextFeature Do Until pFeature2 Is Nothing Set pPointB = pFeature2.Shape MsgBox pFeature2.Value(intPosFID) & "F2" Set pFeature2 = pFCursor2.NextFeature Loop Set pFeature = pFCursor.NextFeature Loop
... View more
10-17-2011
10:45 PM
|
0
|
2
|
537
|
POST
|
My question is how can we use the Create Thiessen Polygons (Analysis) tool available with ArcInfo license by defining an external feature boundary (e.g. study area boundaries defined by a polygon) for the created thiessen polygons. As I have seen this is not possible via the Environments...options in that tool. Is there any available code in VBA for doing this? Thanks Demetris
... View more
10-05-2011
11:00 PM
|
0
|
0
|
1082
|
POST
|
Thanks Neil. So, I can use this DLL only as a command icon within ArcGIS? In this case, how can I find its GUID so as to run it through VBA using the Execute method of the ICommandItem interface?
... View more
10-05-2011
11:27 AM
|
0
|
0
|
665
|
POST
|
Neil, Thanks you are right. However, I have a new message now : "Run-time error 453-Can't find DLL entry point in C:\....*.DLL. I think that this acttually means that this function cannot run the DLL. Is that right? How can I find the so called "Entry point"? Thanks
... View more
10-05-2011
08:09 AM
|
0
|
0
|
665
|
POST
|
Thanks for the information. I note the following relevant details that may help: I try to use the Thiessen Polygon 3.0 DLL downloaded from the link arcscripts.esri.com/details.asp?dbid=11958. This DLL creates Thiessen polygons. I have already placed this DLL in a toolbar that works fine. However, I need to incorporate it within a loop of the VBA code and I do not know any functions, procedures included in the DLL. However, I found a relevant function from archives postings http://forums.esri.com/Thread.asp?c=93&f=992&t=107377 and I used it as shown in code below. In particular, I declare it and I try to call it via the Calldll() procedure and I receive the following message "Run-time error 13- Type mismatch". I think that the arguments of the function match with the appropriate data type provided. Could you please have a look in the code below to find what is going on? Any more help, will be appreciate it. Public Declare Function CreateParcelsShape Lib "C:\Program Files\ArcGIS\CreatePoly.dll" (Centroids As IFeatureClass, Block As IPolygon, pFDS As IFeatureDataset) Public Sub CallDll() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument 'Get the active map (data frame) Dim pMap As IMap Set pMap = pMxDoc.FocusMap 'Get the layers Dim pLayers As IEnumLayer Set pLayers = pMap.Layers Dim pLayer1 As ILayer Set pLayer1 = pLayers.Next Do Until pLayer1 Is Nothing If pLayer1.Name = "Block12" Then Exit Do End If Set pLayer1 = pLayers.Next Loop Dim pBlocks As IFeatureLayer Set pBlocks = pLayer1 Dim pBlocksFC As IFeatureClass Set pBlocksFC = pBlocks.FeatureClass Dim pBlocksCursor As IFeatureCursor Set pBlocksCursor = pBlocksFC.Search(Nothing, False) Dim pBlockFeature As IFeature Set pBlockFeature = pBlocksCursor.NextFeature 'Get the shape of the polygon (Block) Dim polygon As IPolygon Set polygon = pBlockFeature.Shape Dim pLayers2 As IEnumLayer Set pLayers2 = pMap.Layers Dim pLayer2 As ILayer Set pLayer2 = pLayers2.Next Do Until pLayer2 Is Nothing If pLayer2.Name = "CentroidsBlock12" Then Exit Do End If Set pLayer2 = pLayers2.Next Loop Dim pCentroids As IFeatureLayer Set pCentroids = pLayer2 Get the dataset Dim pFDataSet As IFeatureDataset Dim pFWorkspace As IFeatureWorkspace Dim pAWFactory As IWorkspaceFactory Set pAWFactory = New AccessWorkspaceFactory Set pFWorkspace = pAWFactory.OpenFromFile("C:\LACONISS\GAPopulation.mdb", 0) Set pFDataSet = pFWorkspace.OpenFeatureDataset("Polygons") 'Call the DLL function CreateParcelsShape pCentroids, polygon, pFDataSet End Sub
... View more
10-04-2011
11:22 PM
|
0
|
0
|
665
|
POST
|
I have a DLL script that launches a window where the user should may do the following selections: an input file, a field name, select between 2 option buttons and an output file name. However, I need to run this DLL via a VBA and ArcObjects code so as the user will not see the window of the DLL tool and the above selections will be given automatically within a loop so as to take various output files. Is that possible? Please help. Thanks Demetris
... View more
10-02-2011
02:02 AM
|
0
|
8
|
2588
|
POST
|
I have the following 2 questions: 1.Does anybody know if I may find the cost allocation algorithm in VBA and ArcObjects? The reason is that I want to do a similar task i.e. allocate space so I need to do some adjustments. 2. Why when I use the cost allocation function of Spatial Analyst, space is allocated not in all input source locations as shown in attached image. In particular, the input raster has 18 spots while the cost functions allocates 14 spaces.Can I impose the function to allocate space in all input source locations? and how? Thanks Demetris
... View more
09-27-2011
08:06 PM
|
0
|
0
|
581
|
POST
|
Thanks for the answer. However, I suppose I have just to select the polygon first and then use that code? Deme
... View more
05-30-2011
01:02 AM
|
0
|
0
|
254
|
POST
|
Hi. I have a feature layer with land parcels. Each parcel is a polygon. So, I want to calculate the perimeter of each polygon using VBA and ArcObjects. Is there any property in any ArcObjects Interfece in order to just read it? Any help please? Thanks Deme
... View more
05-29-2011
10:37 AM
|
0
|
2
|
357
|
POST
|
A general comment I would like to do is that the previous kind of forum with the point system awarding to those answered questions was a perfect system in terms of supporting people dealing with ArcObjects Programming. Also, the fact that this forum refers in all development languages is another disadvantage. In conclusion, my view is that this new forum system is not effective and I wonder how ESRI took these decisions and does not do anything to improve this system. You may see that in most questions rarely there is an answer or even a discussion. I hope that this positive critique will be taken into account by ESRI and if you agree please add in this post your views. Regards Demetris
... View more
05-17-2011
09:19 PM
|
0
|
4
|
736
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|