>Java >java지도 시간 >Google 길찾기 데이터를 검색하기 위해 KML에서 JSON으로 마이그레이션하는 방법은 무엇입니까?

Google 길찾기 데이터를 검색하기 위해 KML에서 JSON으로 마이그레이션하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-25 11:36:45940검색

How to Migrate from KML to JSON for Retrieving Google Directions Data?

KML 데이터를 사용한 Google 길찾기 검색 문제

Google은 2012년 7월 27일부터 KML 데이터를 사용한 Google 길찾기 검색을 중단했습니다. KML 파일을 구문 분석하여 Google에서 길찾기를 추출하는 데 사용되는 것은 더 이상 사용되지 않습니다. 기능적입니다.

해결책:

KML 대신 JSON을 사용하도록 코드를 마이그레이션하세요. 이러한 전환을 용이하게 하기 위해 다음 클래스를 만들었습니다.

  • Parser.java: Google 길찾기 데이터를 구문 분석하기 위한 인터페이스를 정의합니다.
  • XMLParser. java: 제공된 XML 데이터를 구문 분석하기 위한 추상 클래스를 구현합니다. URL.
  • Segment.java: 지점, 회전 지침, 길이 및 거리를 포함하여 경로의 세그먼트를 나타냅니다.
  • Route.java: 지점, 회전 지침, 길이, 폴리라인 등을 포함한 경로를 나타냅니다. 메타데이터.
  • GoogleParser.java: Google JSON 데이터에 대한 구체적인 파서를 구현합니다.
  • RouteOverlay.java: map.

구현:

  1. KML에서 길찾기를 추출하는 코드를 다음 함수로 바꾸세요.
private Route directions(final GeoPoint start, final GeoPoint dest) {
    Parser parser;
    String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON";
    final StringBuffer sBuf = new StringBuffer(jsonURL);
    sBuf.append("origin=");
    sBuf.append(start.getLatitudeE6()/1E6);
    sBuf.append(',');
    sBuf.append(start.getLongitudeE6()/1E6);
    sBuf.append("&destination=");
    sBuf.append(dest.getLatitudeE6()/1E6);
    sBuf.append(',');
    sBuf.append(dest.getLongitudeE6()/1E6);
    sBuf.append("&sensor=true&mode=driving");
    parser = new GoogleParser(sBuf.toString());
    Route r =  parser.parse();
    return r;
}
  1. onCreate() 메서드에 다음을 추가합니다. 코드:
MapView mapView = (MapView) findViewById(R.id.mapview);
Route route = directions(new GeoPoint((int)(26.2*1E6),(int)(50.6*1E6)), new GeoPoint((int)(26.3*1E6),(int)(50.7*1E6)));
RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE);
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();

참고: UI 스레드에서 네트워크 작업을 방지하려면 AsyncTask 내에서 Direction() 함수를 사용하는 것이 좋습니다.

위 내용은 Google 길찾기 데이터를 검색하기 위해 KML에서 JSON으로 마이그레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.