簡體   English   中英

如何將使用組合參數 (latlong) 的 function 重寫為具有單獨參數、緯度和經度的 function?

[英]How do I rewrite a function that uses a combined parameter (latlong) into a function with seperate perameters, latitude and longitude?

我正在嘗試將使用參數 latlong 的 function 轉換為使用緯度和經度作為單獨參數的 function。 此 function 中有一部分在使用緯度和經度作為單獨參數時無法轉換。 (我要轉換的 function 在 javascript 中,我想將其轉換為 C#)這里是 function:

function inBoundedBox(latlong1, latlong2, latlong3)
  {
var betweenLats;
var betweenLons;

if(latlong1.Latitude < latlong2.Latitude)
    betweenLats = (latlong1.Latitude <= latlong3.Latitude && 
latlong2.Latitude >= latlong3.Latitude);
else
    betweenLats = (latlong1.Latitude >= latlong3.Latitude && 
 latlong2.Latitude <= latlong3.Latitude);
    
if(latlong1.Longitude < latlong2.Longitude)
    betweenLons = (latlong1.Longitude <= latlong3.Longitude && 
    latlong2.Longitude >= latlong3.Longitude);
else
    betweenLons = (latlong1.Longitude >= latlong3.Longitude && 
    latlong2.Longitude <= latlong3.Longitude);

return (betweenLats && betweenLons);

}

這是轉換后的 function 的一部分(在 C# 中):

 public void checkIntersections(double latitude1, double longitude1, double latitude2, double 
  longitude2, double latitude3, double longitude3) 
    {
        double betweenLats;
        double betweenLongs;
        if (latitude1 < latitude2)
        {
            betweenLats = (latitude1 <= latitude3 && latitude2 >=latitude3);
    
        }
        else 
        { 

        }

    
    }

我在變量 betweenLats 時遇到了一些問題。 我得到的錯誤說我無法將類型 bool 轉換為 double。 我應該如何轉換它?

您需要像這樣編寫代碼。 betweenLatsbetweenLons將是bool類型。

public static bool inBoundedBox(double latitude1, double longitude1, double latitude2, double longitude2, double latitude3, double longitude3)
{
    bool betweenLats;
    bool betweenLons;

    if (latitude1 < latitude2)
        betweenLats = (latitude1 <= latitude3 &&
    latitude2 >= latitude3);
    else
        betweenLats = (latitude1 >= latitude3 &&
        latitude2 <= latitude3);

    if (longitude1 < longitude2)
        betweenLons = (longitude1 <= longitude3 &&
        longitude2 >= longitude3);
    else
        betweenLons = (longitude1 >= longitude3 &&
        longitude2 <= longitude3);

    return (betweenLats && betweenLons);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM