ThinkGeo.com    |     Blog    |     Wiki    |     Support

Weird problem with COM Interop

Scott, 
  
 I could try downloading and installing it but can I do it along with the existing Map Suite Geocoder that I already have installed? Or would that cause problems? 
  
 Thanks, 
 Kostas 


Kostas, 
  
 Yes, you can do it along with the exsting MapSuite Geocoder that you already have installed, I just guessed the crash problem is from the Rtree queries, because in the reverse geocoding, we used the Rtree queries to restrcit the zipcode area, so that’s the reason why I sent the rtree queries code to you and hope you can make a simple sample by delphi to check the problem, 
  
 Now after you installed the ServicesEdition, you just need to reference it and use the rtree code to test by delphi, for this case, we just validate the Rtree queries to see if it is whether caused the crash problem, 
  
 Thanks, 
  
 Scott,

Scott,


I've installed the Services Edition as you suggested. I have referenced MapSuiteCore under C:\Program Files\ThinkGeo\Map Suite Services Evaluation Edition 4.5\Developer Reference\Service Edition - Strong Named. I get the following complilation errors: 


Error 1 The type or namespace name 'RECTANGLE_D' could not be found (are you missing a using directive or an assembly reference?)


Error 2 'ThinkGeo.MapSuite.Core.RtreeSpatialIndex' does not contain a definition for 'GetRecordByBoundingBoxIndexesContainingRectangle' and no extension method 'GetRecordByBoundingBoxIndexesContainingRectangle' accepting a first argument of type 'ThinkGeo.MapSuite.Core.RtreeSpatialIndex' could be found (are you missing a using directive or an assembly reference?)


I already have the  using ThinkGeo.MapSuite.Core;


Any suggestion to why I cannot compile the code you gave me?



Regards,

Kostas

 


 


 



Kostas, 



Right now let us make the issue more clear, please check the comments what you mentioned below: 



01-11-2011 10:48 AM Quote Reply Alert 

Scott, 



This problem exists *only* in reverse geocoding (e.g. entering coordinates as a search string in the UsaGeocoder.Match mehod). Normal geocoding works fine. 



FYI, if I use my COM object via a VBScript in my Delphi application (by using the MS Script Control object) then it works fine. That's the only workaround I have found so far. 



Thanks, 

Kostas 





You said you have found out the workaround through the VBScript in your Delphi application, so I think that is the right way for you, I guessed maybe the problem is from the Rtreet queries, if that's true, we have no ideas on that because of the Rtree queries are the core arithmetic for reverse geocoding. Also I attached the sample for testing the rtreet queries to you, because the limition of the attachment I just attached the sample application, not include the dlls, so please reference the MapSuiteCore.dll by yourself, the version what I tested is 4.5.0.0. 



If you have still have any questions please let us know, 



Thanks, 



Scott,



Post8554.zip (9.92 KB)

Scott, 
  
 I tried your sample code you provided in the attached zip file and it worked fine inside my COM Object so I guess that rules out the problem in the Rtreet query. 
  
 Regards, 
 Kostas 


Kostas, 
  
 I would like to confirm with you about your workaround method for this issue, you ever said  if you used your COM object via a VBScript in your Delphi application (by using the MS Script Control object) then it works fine. That’s the only workaround I have found so far. So if it is true can you use the workaround method in your application, as so far, we really cannot re-produce your problem correctly and we don’t have the Delphi environment to test it, the core code of reverse-geocoding seems to be fine. If it is possible, I suggest you to use the workaround method in your application if there are any other problems in the future please let us know, 
  
 Thanks, 
  
 Scott,