I need to compute for the undulation or geoID of lattitude and longitude using golang but i found this package i think its useful
https://github.com/garrettsickles/geolocation
implemented it but it gives me incorrect geoid and also i did by using dll which could be comfortable with me but the problem is that there is no easier way to read dll files in golang via unix environment but also found difficult to implement it
DLLExport
i used this in my dll and also i want to export it and read in golang but in windows it could be possible but as golang newbie i cannot be able to figure out how can i achieve reading dll in golang in my unix environment (macos darwin)
public interface IComputeMSL
{
// DLL Export from msl result
[DllExport(HelperStr.GetMSLDLL, CallingConvention.ThisCall)]
double GetMSLResult(double lat, double lon, double gpsElevation);
// DLL Export from WSG84
[DllExport(HelperStr.GetWSG84DLL, CallingConvention.ThisCall)]
double GetWSG84Result(double gpsElevation, double mslElevation);
}
this is my c# dll reader which keeps the geoid computation correctly
public class ComputeMSL : IComputeMSL
{
/* GetMSLResult from the parameter as lat, lon, and gps elevation */
public double GetMSLResult(double lat, double lon, double gpsElevation) =>
Helper.GetMSL(Helper.GetGeoID(lat, lon), gpsElevation);
/* GetWSG84Result from the parameter gpsElevation and mslElevation */
public double GetWSG84Result(double gpsElevation, double mslElevation) =>
Helper.ConvertMSLToWSG84(gpsElevation, mslElevation);
}
this is computeMSL which computes the msl result and wsg84 both of them are written in c# and used this package for it
GeoidHeightsDotNet
if anyone can help me to configure correctly my dll to be able to read in unix and windows environment at the same time or any package that can support the computation of geoID in golang or package that can compute egm86, egm2008 i would appreciate your help.