ThinkGeo.com    |     Documentation    |     Premium Support

GeoDBF

Hallo,

we upgrade now from MapSuite 7 to Version 9. There is an issue with our Multiraster Implementation:



We use GeoDBF for ImageCatalogues. In our OpenCore (MultiRasterLayer) we read the values from the dbf-file:

 


xmin = this.CatalogueDbfFile.ReadFieldAsDouble(i, dbfCatalogueColumnName_XMIN);
xmax = this.CatalogueDbfFile.ReadFieldAsDouble(i, dbfCatalogueColumnName_XMAX);
ymin = this.CatalogueDbfFile.ReadFieldAsDouble(i, dbfCatalogueColumnName_YMIN);
ymax = this.CatalogueDbfFile.ReadFieldAsDouble(i, dbfCatalogueColumnName_YMAX);

In Version 9 the decimal-point will ignore. So the Envalopes are wrong. (see attached file and rename it to dbf)



Please help. Thanks,

Torsten

 

tk100.txt (9.12 KB)

Hi Torsten, 



I am not very clearly about your scenario, it looks you implement a Multiraster which inherit from our Rasterlayer or RasterSource, then you call the ReadFieldAsDouble from the class GeoDBF, right? 



For GeoDBF.cs, it looks the only enhancement is if the column type equal Numeric, Float and DoubleInBinary, the decimal-point will be replaced to cultureInfo.NumberFormat.NumberDecimalSeparator, so it should works better for your current culture. 



If you want to keep the original behavior please set your target culture to CultureInfo of GeoDbf class, and make sure don’t call this API after that: internal void Open(FileMode fileMode, FileAccess fileAccess) 



Wish that’s helpful. 



Regards, 



Don

Hi Don,



your tip was correct, Thanks
Torsten

Hi Torsten, 
  
 I am glad to hear that’s helpful. 
  
 Any question please let us know. 
  
 Regards, 
  
 Don