위도와 경도가있는 엔티티가 있습니다.FetchXML - GeoCode 거리 별 거리 검색
이제 주소가 있습니다.이 주소의 위도와 경도를 알고 있으며, 3 마일 이내에 기록을 검색하고 싶습니다.
FetchXML을 사용하여 어떻게 수행하나요?
위도와 경도가있는 엔티티가 있습니다.FetchXML - GeoCode 거리 별 거리 검색
이제 주소가 있습니다.이 주소의 위도와 경도를 알고 있으며, 3 마일 이내에 기록을 검색하고 싶습니다.
FetchXML을 사용하여 어떻게 수행하나요?
지오 코딩이 기능으로 제공되지 않으므로 FetchXml을 통해 직접이 작업을 수행 할 수 없습니다.
즉, 손으로 뭔가를 굴리기 시작할 필요가 있음을 의미합니다. 쉽지는 않을 것입니다. This site에는 (CRM과 관련하여 언어가 다른 경우에도) 수행해야 할 작업에 대한 개요가 있습니다.
귀하의 요구 사항을 완화하고 FetchXml을 사용하여 경도 +/- 1.5 miles 및 위도 +/- 1.5 마일 (물론 사각형 대신에 반경).
더 엄격하게해야하는 경우 다음 (즉, MSSQL이 아님) 쿼리를 다시 작성하여 일종의 QueryExpression과 함께 사용할 수 있습니다. 예를 들어, 위와 같이 위도와 경도가 중심점의 1.5 마일 인 곳에서 데이터의 대략적인 하위 집합을 결정하는 쿼리 식과 그 결과를 반환 한 후에 각각에 대해 원하는 반경 내에 있는지 계산합니다 (예 : ...
SELECT id, X(gm_coor) AS latitude, Y(gm_coor) AS longitude,
ATAN2(
SQRT(
POW(COS(RADIANS(__LAT__)) *
SIN(RADIANS(Y(gm_coor) - __LNG__)), 2) +
POW(COS(RADIANS(X(gm_coor))) * SIN(RADIANS(__LAT__)) -
SIN(RADIANS(X(gm_coor))) * COS(RADIANS(__LAT__)) *
COS(RADIANS(Y(gm_coor) - __LNG__)), 2)),
(SIN(RADIANS(X(gm_coor))) * SIN(RADIANS(__LAT__)) +
COS(RADIANS(X(gm_coor))) * COS(RADIANS(__LAT__)) *
COS(RADIANS(Y(gm_coor) - __LNG__)))
) * 6372.795 AS distance
FROM geocoded
HAVING distance < [RANGE IN KILOMETRES]
나는 두 가지 옵션이 꺼져
한 손
) SQL 내부의 필터링 된보기를 사용하여 큰 원 거리 공식을 계산 생각할 수 있습니다. 이것은 가장 깨끗한 방법이지만 가져올 수는 없습니다.2) 원하는 포인트의 위도/경도에 대해 +/- .02 내의 모든 결과를 가져옵니다. 그런 다음 큰 원거리 거리 수식 (및 자바 스크립트)을 사용하여 원하는 항목을 연마하십시오. 따라서이 경우 가져 오기에서는 몇 가지 추가 결과가 반환되지만 (대다수는 제외됨) 자바 스크립트가 나머지를 필터링합니다.
옵션 # 2는 훌륭하게 작동하지만 2 단계 접근 방식입니다.
이 너무보기 : http://www.codeproject.com/Articles/32806/GeoLocation-by-Radius-Using-Google-Maps-and-NET –