在golang中计算GeoId波动

时间:2019-07-08 10:32:39

标签: c# go dll geolocation

我需要使用golang计算纬度和经度的起伏或geoID,但我发现这个程序包对我很有用

https://github.com/garrettsickles/geolocation

实现了它,但是它给了我不正确的水准曲线,我也使用了dll,这让我很舒服,但是问题是没有更简单的方法可以通过unix环境在golang中读取dll文件,但是也很难实现它

DLLExport

我在dll中使用了这个 我也想导出它并阅读golang 但在Windows中可能是可行的,但作为golang新手 我无法弄清楚如何实现 在我的unix环境(macos darwin)中在golang中读取dll

   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);
    }

这是我的c#dll阅读器,可正确保持大地水准面计算

   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);
    }

这是computeMSL,它计算msl结果,而wsg84都用c#编写并为此使用了此程序包

GeoidHeightsDotNet

如果有人可以帮助我正确配置我的dll,使其能够同时在Unix和Windows环境中读取,或者可以在golang中支持geoID计算的任何软件包或可以计算egm86,egm2008的软件包,我将不胜感激您的帮助。

0 个答案:

没有答案