2016-08-02 20 views
0

我與gmlib(1.5.3,XE10)工作,並試圖用TGeometry.interpolate功能,但總是返回0.00,0.00。我瀏覽代碼,我注意到GMFunctions.pas中的函數插值是空的?TGeometry.interpolate是空

Regards

回答

0

哇!非常抱歉!!

使用此代碼試試! (未測試)

class procedure TGeometry.Interpolate(Map: TCustomGMMap; Origin, Dest: TLatLng; 
    Fraction: Real; Result: TLatLng); 
const 
    StrParams = '%s,%s,%s,%s,%s'; 
var 
    Params: string; 
begin 
    if not Assigned(Result) then Exit; 

    Params := Format(StrParams, [ 
       Origin.LatToStr(Map.Precision), 
       Origin.LngToStr(Map.Precision), 
       Dest.LatToStr(Map.Precision), 
       Dest.LngToStr(Map.Precision), 
       StringReplace(FloatToStr(Fraction), ',', '.', [rfReplaceAll]) 
       ]); 
    THackMap(Map).ExecuteScript('Interpolate', Params); 
    Result.Lat := Result.StringToReal(THackMap(Map).FWC.GetStringField(GeometryForm, GeometryFormInterLat)); 
    Result.Lng := Result.StringToReal(THackMap(Map).FWC.GetStringField(GeometryForm, GeometryFormInterLng)); 
end; 

請給我一個反饋。謝謝!

+0

完美!謝謝@cadetill! – Ramiro

+0

好的,在[GitHub](https://github.com/cadetill/gmlib_v1)中更新。謝謝 – cadetill