의 절차를 얻을 :Linq에에 실체 내가 WCF 서비스에서 같은 것을 사용하려고 새로운 statemant
나는 위도 및 경도와 제안이있는 테이블이있다. 그리고 사용자로부터의 위치. 쿼리에서 나는 사용자로부터 오퍼까지의 거리가 필요하고 이것을 주문합니다.
public IQueryable<V1_Off_Offert> Get_myOffert()
{
var User = GetCurrentPers_ID();
if (User != 0)
{
double lat = GetCurrentPOS().LAT;
double lon = GetCurrentPOS().LON;
var query = from c in this.ObjectContext.C1_OFF_OFFERT
where c.C1_PERS_PERSON_ID == User
select new V1_Off_Offert()
{
ID = c.ID,
//......
LAT = (double)c.C1_ORT_GEO.LAT,
LON = (double)c.C1_ORT_GEO.LON,
//This it dosnt Work
Distanz = (double)Distanze((double)c.C1_ORT_GEO.LAT, (double)c.C1_ORT_GEO.LON, lat, lon),
Radius = (double)c.DISTANZ
};
return query;
}
else return null;
}
이것을 실현하는 방법이 있나요 :
private double Distanze(double LAT1, double LON1, double LAT2, double LON2)
{
double e = (3.1415926538 * LAT1/180);
double f = (3.1415926538 * LON1/180);
double g = (3.1415926538 * LAT2/180);
double h = (3.1415926538 * LON2/180);
double i = (Math.Cos(e) * Math.Cos(g) *
Math.Cos(f) * Math.Cos(h) + Math.Cos(e) *
Math.Sin(f) * Math.Cos(g) * Math.Sin(h) +
Math.Sin(e) * Math.Sin(g));
double j = (Math.Acos(i));
double k = (6371 * j);
return k;
}
및 쿼리에
?
질문에 철자를 수정하십시오. 그것은 당신을 도우려는 사람에게 모욕입니다. –
전체 ** 예외 메시지를 게시 할 수 있습니까 ?? 당신은 단지 우리에게 작은 발췌 문장을주고 있습니다. 가장 중요한 부분은 빠져 있습니다 ... –
'Math.Pi'를 사용하는 것이 좋을지도 모르며,'(3.1415926538 * x/180 ConvertToRadians (x);'6371이 무엇인지 전혀 모르겠지만 컨텍스트를 제공하면 미래의 자기가 감사 할 것입니다. (주석은 한 가지 방법이지만 주석은 단지 사과입니다. //butunclebob.com/ArticleS.TimOttinger.ApologizeIncode)). – jason