위도와 경도를 이용한 거리 계산<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />우편 번호 또는 위도와 경도를 사용하여 미국 주 간 거리를 계산하는 방법을 아는 사람이 있습니까?
Re: 위도와 경도를 이용한 거리 계산안녕 @ron_horne
빠른 답장을 보내 주셔서 감사합니다!
나는 대본으로 조금 더 작업했고 잘못이 내 편이라는 것을 발견했습니다. 나는 문제없이 거리를 계산할 수 있었다.
매우 감사합니다!
Re: 위도와 경도를 이용한 거리 계산안녕 @MerGrung ,
데이터 샘플과 사용 중인 스크립트를 게시할 수 있는 경우 문제를 해결할 수 있습니다.
그렇지 않으면 오류의 원인을 알기 어렵습니다.
2016년 이후 변경되었을 가능성이 가장 큰 한 가지는 샘플 데이터에 대한 참조입니다. 내 원래 스크립트에는 JMP11 x86에 대한 참조가 있었습니다. 최신 버전을 사용하는 경우 확실히 오류 메시지가 표시됩니다.
Re: 위도와 경도를 이용한 거리 계산안녕 @ron_horne ,
거리를 계산하기 위해 이 스크립트를 사용하려고 했지만 시도했을 때 오류 메시지가 표시되었습니다. 2016년 대본이라 뭔가 달라진 건 아닐까?
스크립트를 업데이트해 주시면 감사하겠습니다.
Re: 위도와 경도를 이용한 거리 계산안녕 @mjvincent87 그리고 @jenkins_macedo
이를 수행하는 또 다른 방법은 데이터 테이블의 열 수식을 사용하는 것입니다. 다음 스크립트를 시도하십시오
Clear Globals();
Names Default To Here( 1 );
// Open data file
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// add column for distance
dt << New Column( "latrad", formula( :Latitude * (Pi() / 180) ) );
dt << New Column( "longrad", formula( :Longitude * (Pi() / 180) ) );
dt << New Column( "Distance", Numeric,
formula(
6371.00 * 2 * ATan(
(Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin( (:longrad - Lag( :longrad, -1 )) / 2 )
^ 2) ^ 0.5,
(1 - (Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin(
(:longrad - Lag( :longrad, -1 )) / 2
) ^ 2)) ^ 0.5
)
)
);
dt << New Column( "Bearing", Numeric, "Continuous", Format( "Latitude DMS", "PUNSGN", 15, 0 ),
formula(
brng = Mod(
((ATan(
Sin( Lag( :longrad, -1 ) - :longrad ) * Cos( Lag( :latrad, -1 ) ),
Cos( :latrad ) * Sin( Lag( :latrad, -1 ) ) - Sin( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Cos( Lag( :longrad, -1 ) - :longrad )
)) * 180 / Pi()) + 360,
360
)
)
);
Re: 위도와 경도를 이용한 거리 계산안녕 @mjvincent87
이 스크립트를 보고 생각하고 있는 방향인지 알려주세요.
Clear Globals();
Names Default To Here( 1 );
// open data file (dots) - this includes the observation we want to update
dt = Open( "$SAMPLE_DATA/Hurricanes.jmp" );
// introduce the column with the distance to be updated in the dots table
dots << New column ( "Distance", Numeric );
// introduce the column with the distance to be updated in the dots table
Dots << New Column("Bearing", Numeric, "Continuous", Format("Latitude DMS", "PUNSGN", 15, 0));
// extract the longitude and the latitude values from the table - as radians
x = (Column( dots, "Longitude" ) << getValues) * Pi() / 180 ;
y = (Column( dots, "Latitude" ) << getValues) * Pi() / 180 ;
// declare the distance calculation function in KM based on world radius of 6371 KM.
// For statute miles multiply final distance d by 0.621371.
// For nautical miles multiply final distance d by 0.539957
haversine = Function( {long1, lat1, long2, lat2, R = 6371.009},
{Default Local},
a = Sin( (lat1 - lat2) / 2 ) ^ 2 + Cos( lat1 ) * Cos( lat2 ) * Sin( (long1 - long2) / 2 ) ^ 2;
c = 2 * ATan( a ^ 0.5, (1 - a) ^ 0.5 );
d = R * c // *0.621371 For statute miles;
);
wait (0.01);
// run the function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:distance[i] = haversine( x[i], y[i], x[i + 1], y[i + 1] )
);
// Declare the Bearing calculation function
Bearing = function ({long1, lat1, long2, lat2 },
{Default Local},
abc = sin (long2 - long1) * cos (lat2);
def = cos (lat1) * sin (lat2) - sin (lat1) *cos (lat2) * cos (long2 - long1) ;
brng = mod (( (atan ( abc, def )) * 180 / pi() ) + 360 , 360) ;
);
wait (0.01);
// run the Bearing function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:Bearing[i] = Bearing( x[i], y[i], x[i + 1], y[i + 1] )
);
최상의,
론
Re: 위도와 경도를 이용한 거리 계산놀라운 수식 모음:
http://www.movable-type.co.uk/scripts/latlong.html
Re: 위도와 경도를 이용한 거리 계산ron_horne에게 또 한 번 감사드립니다!몇 가지 질문:
출력이 법령 마일인지 확인하고 싶습니까?
또한 두 좌표 사이를 유지하기 위한 스크립트가 있습니까?
Re: 위도와 경도를 이용한 거리 계산안녕 ron_horne 그리고 잘 지내고 계시길 바랍니다. 이 스레드에서 마지막으로 채팅한 이후로 시간이 좀 걸렸다는 것을 알고 있습니다. 이 프로젝트는 보류되었고 현재 가동 중이며 약 몇 주 후에 결과 테이블이 캠페인 팀에 의해 프로덕션 환경에 배포될 것입니다.
스크립트를 적용했는데 예상대로 완벽하게 작동했습니다!! 잘 했어!!
아시다시피 스크립트는 (HH Lat. 및 HH Long.)에서 (PS Lat 및 PS Long.) 사이의 거리를 계산합니다. 이것이 원래 프로젝트가 캡처하도록 설계된 것입니다. 나는 결과 거리를 사용하여 각 가정이 집에서 1, 3 또는 5시간 떨어진 프로그램 중 하나에 참석하는 데 걸리는 시간을 계산했습니다.
이제 문제는 각 위도 쌍 사이의 거리를 계산하는 스크립트를 작성하고 싶다는 것입니다. 그리고 롱.
예를 들어:
아래 표에서 위도의 1행 쌍 사이의 거리와 시간을 계산했습니다. & 긴. 어떤게 완벽해!! 20행 모두에 대해 가정 위치에서 프로그램 목적지까지 20개의 고유한 거리를 제공합니다.
따라서 행 1에서 PS Lat를 사용하는 프로그램 # 15896입니다. 56.47 N & PS 길이. 132.38 S는 HH Lat. & HH 롱.
각 프로그램 #에서 각 가구의 거리를 알고 싶기 때문에 JMP가 첫 번째 프로그램뿐만 아니라 각 프로그램 위도 및 경도에 걸쳐 각 가구 위도 및 경도 사이의 거리를 캡처하도록 어떻게 계산할 수 있습니까? 이 테이블에는 20개의 행이 있으며, 설명한 대로 20개 대신 400개의 차이 거리 계산이 있어야 합니다. 이 문제를 해결하는 방법을 알고 있습니까?
내 원본 HH 데이터 테이블에는 각각의 HH Lat와 함께 156,737개의 고유 가구 레코드가 있습니다. & HH 롱. 가구 파일에는 15,655개의 고유한 HH Lat가 있습니다. & HH 롱.
329개의 고유한 PS Lat가 있는 2,747개의 고유한 프로그램 번호가 있는 프로그램 데이터 테이블. & PS 롱. 각 고유 가구 위도에서 거리를 계산하고 싶습니다. & 각각의 고유한 프로그램 Lat에 Long. & Long.과 같이 거리가 각 프로그램에서 계산됩니다. 이는 15,655 *329가 되고 결과 테이블 또는 총 거리는 약 5,150,495개의 레코드가 됩니다.

Re: 위도와 경도를 이용한 거리 계산감사해요 ron_horne . 일단 해보고 결과 알려드리겠습니다. 하지만 멋져 보이는 것 같아요! 큰 텍사스
Re: 위도와 경도를 이용한 거리 계산안녕 젠킨스.마세도 ,
내 원래 스크립트는 두 개의 연속 행 사이의 거리를 킬로미터 단위로 계산했습니다.
이제 각 행의 마일 거리를 생성하도록 수정했습니다.
테이블에서 이것을 시도하십시오
전역 지우기 () ;
여기에 기본 이름 ( 1 ) ;
// 데이터 테이블 참조
dt = 현재 데이터 테이블 () ;
// 도트 테이블에서 업데이트할 거리가 있는 열을 소개합니다.
dt << 여러 열 추가 ( "거리" , 1 , ~ 후에 ( 6 ) , 숫자 ) ;
// 테이블에서 경도와 위도 값을 라디안으로 추출합니다.
HHx = ( 열 ( dt , "HH 경도" ) << getValues ) * 파이 () / 180 ;
HHy = ( 열 ( dt , "HH 위도" ) << getValues ) * 파이 () / 180 ;
PSX = ( 열 ( dt , "PS 경도" ) << getValues ) * 파이 () / 180 ;
싸이 = ( 열 ( dt , "PS 위도" ) << getValues ) * 파이 () / 180 ;
// Miles로 계산 함수 선언
하버사인 = 기능 ( { 긴1 , 위도1 , 롱2 , 위도2 , 아르 자형 = 6371 } ,
{ 기본 로컬 } ,
ㅏ = 죄 ( ( 위도1 - 위도2 ) / 2 ) ^^ 2 + 코사인 ( 위도1 ) * 코사인 ( 위도2 ) * 죄 ( ( 긴1 - 롱2 ) / 2 ) ^^ 2 ;
씨 = 2 * ATan ( ㅏ ^^ 0.5 , ( 1 - ㅏ ) ^^ 0.5 ) ;
디 = ( 아르 자형 * 씨 ) * 0.6213712 ;// 마일
) ;
기다리다 ( 0.01 ) ;
// 테이블의 행을 따라 함수를 실행합니다.
을 위한 ( 나 = 1 , 나 <= N행 ( dt ) - 1 , 나 ++,
dt : 거리 [ 나 ] = 하버사인 ( HHx [ 나 ] , HHy [ 나 ] , PSX [ 나 ] , 싸이 [ 나 ] )
) ;
Re: 위도와 경도를 이용한 거리 계산안녕 ron_horne 두 쌍의 위도 좌표와 경도 좌표 사이의 거리를 계산하기 위해 "다음까지의 거리" 스크립트를 사용해 보았지만 스크립트가 작동하지 않거나 내가 제대로 하고 있지 않을 수 있습니다. 테이블 테이블의 처음 20개 행이 첨부됩니다. HH Lat와 HH Long 사이의 거리(마일)를 PS Lat와 PS long까지 알고 싶습니다. 내 데이터에 공식을 맞출 수 있으면 더 빠를 수 있다고 생각합니다. 내 테이블에 2백만 개 이상의 행이 있거나 자동화할 수 있기 때문에 너무 많은 시간이 걸리기 때문에 각 좌표에 대해 선을 그려야 하는지 궁금하기 때문에 거리 도구가 여기에서 어떻게 작동하는지 잘 모르겠습니다. Mapping: JMP Geocoder를 사용하여 아래 좌표를 생성했습니다. 어떻게 하시겠습니까? ron_horne 또는 이전에 게시된 다음 스크립트까지의 거리에서 이를 사용자 정의하는 사람이 있습니까? 도움을 주시면 감사하겠습니다. 감사해요
아래 변수에 대한 일부 정보:
우편 번호: Progra 시작 우편 번호(PS)에 일치하는 가구(HH)입니다.
프로그램 번호: 이 번호는 동일한 프로그램 대 가구 우편번호 내에 있는 가구에 홍보하고자 하는 프로그램을 반영합니다.
HH 위도: 가구 우편 번호와 관련된 위도
HH 경도: 가구 우편번호와 관련된 경도
PS 위도: 프로그램 시작 우편번호와 관련된 위도. 그것이 프로그램이 시작된 위치입니다.
PS 경도: 프로그램 시작 우편번호와 관련된 경도입니다. 그것이 프로그램이 시작된 위치입니다.

Re: 위도와 경도를 이용한 거리 계산엄청난! 감사해요 ron_horne . 저는 처음에 Geocoder-Map을 사용하기 시작했습니다. 그러나 나는 또한 SDA가 있음을 알았습니다. 거리 도구도 다운로드했습니다. 모두 꽤 멋지다. 내가하려는 것은 매우 간단하고 간단합니다. 도시 및 주별 위치 사용-( 우편번호/지리적 좌표) 우리 데이터베이스에 있는 우리 프로그램과 가정의 우편번호. 나는 거주지에서 50마일 미만인 프로그램을 100마일 떨어진 프로그램과 비교하여 보여주는 간단한 파일을 개발 중이며 이전 관심사를 기반으로 일상적인 이메일 마케팅 캠페인을 위해 차로 1~2시간 이내 거리에 있는 프로그램 2~3개를 캠페인 팀에 제안했습니다.
Re: 위도와 경도를 이용한 거리 계산왜 여기서 시작하지?
추가 기능: 공간 데이터 분석
그리고 여기
거리 도구 애드인
또는 수식을 사용하는 다른 옵션에 대해 첨부된 스크립트를 확인하십시오.
론