도시 간 거리를 찾는 기능


9

Google 문서와 함께 일하고 있으며 다음 형식의 스프레드 시트를 만들고 싶습니다.

포인트 A 포인트 B 마일리지
로스 앤젤레스 마이애미 292100
팔로 알토 샌프란시스코 90

스프레드 시트에서 Mileage자동으로 계산됩니다. 나는 "까마귀가 날아갈 때"가 아니라 "거리 중심"을 찾고 있습니다.

Google 스프레드 시트에이를 수행 할 수있는 기능이 있습니까?


거리가 멀어 질수록 "운전 거리"와 "까마귀 비행"의 차이가 줄어들 것입니다. 어쨌든 그들은 아마 몇 퍼센트 이상 차이가 나지 않을 것입니다.

1
꽤 대담한 주장처럼 보입니다. 카우보이. 포틀랜드에서 애틀랜타까지 운전하는 것이 비행과 거의 같은 마일리지라고 말하고 있습니까? 나는 그렇게 생각하지 않습니다.
Landon Kuhn

1
@ pnuts 동의하고, 나는 4 살짜리 의견을 방어하지 않을 것이다 :)
Landon Kuhn

Rosarch, 4 년 동안 웹 애플리케이션을 다시 방문하여 질문에 대한 모든 훌륭한 답변을 검토해 보지 않겠습니까?
Jacob Jan Tuinstra

답변:


9

다음과 같은 작은 코드를 사용하면 두 점 사이의 거리를 검색 할 수 있습니다.

암호

function getDirection(city1, city2, unit) {
  var directions = Maps.newDirectionFinder()
    .setOrigin(city1).setDestination(city2)
    .setMode(Maps.DirectionFinder.Mode.DRIVING)
    .getDirections();
  var d = directions.routes[0].legs[0].distance.text;

  var distance, value = d.split(" ")[0].replace(",", ""), text = d.split(" ")[1];
  if(text == unit) {
    distance = value;
  } else if(text == "km" && unit == "mi") {
    distance = value / 1.6;
  } else {
    distance = value * 1.6;
  }
  return Math.round(distance);
}

설명

Google Apps 스크립트 위에 구축 된 MAPs API 는 출발지목적지 사이의 첫 번째 방향 ( route [0] )을 가져옵니다 . 리턴 된 값은 쉼표에서 제거되고 정수로 구문 분석됩니다.

스크린 샷

여기에 이미지 설명을 입력하십시오

노트

반환 된 거리는 킬로미터 또는 마일 입니다. 나는 "까마귀가 날아갈 때"에 대한 계산도 추가했습니다 (마일 단위).

스프레드 시트의 도구> 스크립트 편집기 에서 스크립트를 추가하십시오 . 스크립트 편집기에서 버그 버튼을 누르면 이동합니다!

나는 당신을 위해 예제 파일을 만들었습니다 : 운전 거리를 얻으십시오

참고 문헌


1
샘플 문서의 수식이 더 이상 일관되게 작동하지 않는 것 같습니다. 누군가 편집하여 작동시킬 수 있습니까? 스크립팅 (복사 및 붙여 넣기 이상)에 대해 아는 것이 없으며 도움이 필요합니다. 내가 찾고있는 것은 우편 번호 사이의 주행 거리입니다. 감사합니다!
Melissa

3

Google 스프레드 시트에서 :

=importXML("http://mapquestapi.com/directions/v1/route?  
  key=YOUR_KEY_HERE&outFormat=xml&from=" & A2 & "&to=" 
  & B2,"//response/route/distance")

어디 A2에서 출발지이며 B2목적지입니다.

mapquest에서 API 키를 가져 와서 값 YOUR_KEY_HERE을 바꿔야 합니다.


1
API 키는 어떻게 얻습니까?
Jacob Jan Tuinstra


닐, 살아있어! 공유해 주셔서 감사합니다.
Jacob Jan Tuinstra

+1 명백히 우아한 솔루션이지만 MapQuest는 약간 까다 롭습니다. "이 키는이 서비스에 대해 권한이 없습니다. 키가 없으면 developer.mapquest.com 에 등록하여 무료 키를 얻을 수 있습니다."라는 키를 사용하려고 할 때이 오류가 발생 했습니다 .
Nick Bolton

1

이것이 나를 위해 작동하는 것입니다.

=importXML("http://maps.googleapis.com/maps/api/distancematrix/xml?&origins="& <point.A> & "&destinations=" & <point.B>; "//distance/value")

이 사이의 중심 거리를 얻을 것 <point.A>하고 <point.B>(물론 구글지도에 따라) 미터.


대단해! 까마귀 같은 거리는 어떻습니까?
더스틴 커클랜드

0

이를 위해 Excel 기능 또는 확장 기능이 내장되어 있다고 생각하지 않습니다.

이 Source Forge 페이지를 확인하십시오 : http://zips.sourceforge.net/

  • 우편 번호를 위도 / 경도로 변환하기위한 CSV 데이터 세트를 제공합니다 (중심점)
  • 두 위도 / 경도 좌표 사이의 "까마귀 파리"거리를 계산하는 Excel 코드를 제공합니다. (Java, PHP 및 Python에 해당하는 코드가 포함되어 있습니다.

엑셀 기능은

=IF(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1 - Long2) > 1,
  RadiusofEarth * ACOS(1), RadiusofEarth *
  ACOS(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1-Long2)))

이 페이지에는 각도가 라디안이어야하고 Excel에는도에서 라디안으로의 변환 기능이 있습니다.

=RADIAN(degrees)

다른 사람이 더 매끄러운 답변을하지 않는 한, 너무 많은 작업없이 원하는 것을 얻을 수 있습니다.


예, 그러나 "까마귀가 날아 다니는"대신에 주행 거리는 어떻습니까?

1
Mapquest, Google Earth, Streets & Trips (또는 MapPoint)에서와 같이 상당히 어려우며 모든 도로에 대한 지식이 필요합니다. 이러한 앱 중 적절한 API가 있는지 모르겠습니다.

반면에 상당히 제한된 수의 도시에 대해 거칠고 준비된 근사치를 찾고 있다면지도와지도를 운전할 때 일반적으로 사용되는 주행 거리 테이블을 찾을 수 있습니다. Excel에서 해당 스타일의 데이터를 복제하고 위치 쌍을 검색하기위한 조회를 구성하는 것은 Excel에서 확실히 가능합니다. 그것이 호소되면 답장을 보내면 기능을 작동시킬 수 있습니다.

1
OP는 Google 스프레드 시트를 사용합니다.
Jacob Jan Tuinstra

흥미로운 공식 때문에 +1이지만 이것을 사용하는 것은 아마도 비현실적이라고 생각합니다.
Nick Bolton


-1

Google Developers 내가 사용하고 실제로 즐겼던 Google 스프레드 시트의지도 관련 기능을위한 매우 강력한 스크립트제공합니다 . 전체 지침은 웹 페이지에도 있습니다.


1
"전체 지침"의 핵심 사항을 요약 해 주시겠습니까? 답변은 단독으로 이루어져야하며 외부 소스에 의존해서는 안됩니다 (Google 사이트가 사라질 가능성은 적음). 감사!
jonsca

-2

이 작업을 수행하는 방법을 정확하게 알려주는 API에 익숙하지 않지만 Google Maps API를 사용하면 가능할 것으로 생각합니다 .

물론 Google지도는 API를 통해 한 지점에서 다른 지점으로 경로를 제공 할 수 있습니다. 복잡하지만 스프레드 시트에서 API를 통해 위치를 라우팅하고 운전 경로를 얻을 수있어 도시 간 운전 거리를 제공 할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.