Updated:

 현재 위치에서 지정한 위치로 도보로 갈 수 있는 길을 안내하기 위해 Tmap API를 사용하려고 했지만 자료가 충분하지 않아서 네이버 지도를 URL Scheme로 사용하기로 했다.

Flutter

url변수를 다음과 같이 설정해주고 body에 위 url을 입력해준다.

var url = "nmap://route/walk?slat=37.4640070&slng=126.9522394&sname=%EC%84%9C%EC%9A%B8%EB%8C%80%ED%95%99%EA%B5%90&dlat=37.5209436&dlng=127.1230074&dname=%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B3%B5%EC%9B%90&appname=com.example.aiml_mobile_2024";
// nmap: Navermap, route/walk: 도보
// slat: type=double, 출발지 위도(31.43 ~ 44.35)
// slng: type=double, 출발지 경도(122.37 ~ 132.00)
// sname: type=string, 출발지 이름(URL 인코딩된 문자열)
// dlat
// dlng
// dname

// 중간 생략
body: Center(
          child: ElevatedButton(
          onPressed: () async{
            await launch(url);
          },
            child: Text('Open URL Scheme'),
          ),
        ),
// 이후 생략

 이 url변수를 API를 이용해 Get방식으로 받는것을 해보자. 또한

Spring

RestAPI

 Spring 프로젝트를 생성하고 controller Package에 firstController.java를 생성한다.

package com.example.restapidemo.controller;

import com.example.restapidemo.firstService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequiredArgsConstructor
public class firstController {

    private final firstService firstService;

    @GetMapping("/first")
    public Map<String, Object> firstController() {

        return firstService.getFirstData();
    }
}
  • @RestController
    • @Controller에 @ResponseBody가 추가된 것이다.
    • Spring Framework에서 제공하는 애노테이션으로, 이 클래스가 RESTful 웹 서비스의 엔드포인트를 처리하는 컨트롤러라고 지정한다. 이 컨트롤러는 HTTP요청과 응답을 처리하며, JSON 또는 XML과 같은 데이터 형식으로 클라이언트에게 응답을 반환한다.
  • @GetMapping
    • “/first” 경로에 대한 HTTP GET 요청을 처리하는 메소드로 지정한다.
  • return firstService.getFirstData();
    • firstService.getFirstData()를 반환
    • return “Hello”;로 하면 Hello 반환

 이후 java/com.example.restapidemo 디렉토리에 firstService Interface를 생성한다.

package com.example.restapidemo;

import java.util.Map;

public interface firstService {
    Map<String, Object> getFirstData();
}

impl Package에 firstServiceImpl.java를 생성한다.

package com.example.restapidemo.impl;

import com.example.restapidemo.firstService;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Service
public class firstServiceImpl implements firstService{

    @Override
    public Map<String, Object> getFirstData() {
        Map<String, Object> firstData = new HashMap<>();

        firstData.put("label1", "check1");
        firstData.put("label2", "check2");
        firstData.put("label3", "check3");

        return firstData;
    }
}

 이제 실행을 해보면 다음과 같다.

Project

 이제 위 내용을 이용해서 프로젝트에 적용해본다.

댓글남기기