Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

네비게이션 완성 #25

Merged
merged 5 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions backend/capstone2024/build.gradle
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '21'
sourceCompatibility = '21'
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.28'
runtimeOnly 'com.h2database:h2:2.2.224'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.28'
implementation 'com.h2database:h2'
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}

bootJar {
archiveFileName = 'capstone24.jar'
archiveFileName = 'capstone24.jar'
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,33 @@ public Coordinate testGPS(@RequestParam("address") String address){
}

@GetMapping("/find-way")
public TmapPedestrianResponseDto checkPede(@RequestParam("startLat") String startLat
public Properties checkPede(@RequestParam("startLat") String startLat
, @RequestParam("startLon") String startLon
, @RequestParam(value = "endAddress") String endAddress) throws Exception {
System.out.println("startLat = " + startLat);
System.out.println("startLon = " + startLon);
System.out.println("endAddress = " + endAddress);
return pedestrianService.requestPedestrian(startLat,startLon,endAddress);
Properties properties = new Properties();
TmapPedestrianResponseDto tmapPedestrianResponseDto = pedestrianService.requestPedestrian(startLat, startLon, endAddress);
properties.setTotalDistance(tmapPedestrianResponseDto.getFeatures().getFirst().getProperties().getTotalDistance());
properties.setTotalTime(tmapPedestrianResponseDto.getFeatures().getFirst().getProperties().getTotalTime());
return properties;
}

@GetMapping("/start-navi")
public TmapPedestrianResponseDto confirmPede(@RequestParam("startLat") String startLat
public Properties confirmPede(@RequestParam("startLat") String startLat
, @RequestParam("startLon") String startLon
, @RequestParam("endAddress") String endAddress
,@RequestParam("uuid") String uuid) throws Exception {
System.out.println("startLat = " + startLat);
System.out.println("startLon = " + startLon);
System.out.println("endAddress = " + endAddress);
return pedestrianService.requestPedestrian(startLat,startLon,endAddress);
System.out.println("uuid = " + uuid);
TmapPedestrianResponseDto tmapPedestrianResponseDto = pedestrianService.startPedestrianNavi(startLat, startLon, endAddress, uuid);
Properties properties = new Properties();
properties.setPointIndex(1);
properties.setDescription("경로 안내를 시작 합니다."+tmapPedestrianResponseDto.getFeatures().getFirst().getProperties().getDescription());
return properties;
}

@GetMapping("/poi")
Expand All @@ -52,18 +61,20 @@ public Poi poiTest(@RequestParam("address") String address){
}

@GetMapping("/current-location")
public Poi currentLocation(@RequestParam("curLat") String curLat,
public DistanceInfo currentLocation(@RequestParam("curLat") String curLat,
@RequestParam("curLon") String curLon,
@RequestParam("uuid") String uuid,
@RequestParam("nodeIndex") int nodeIndex){
@RequestParam("pointIndex") int pointIndex){

return null;
return pedestrianService.currentLocationCheck(curLat, curLon, uuid, pointIndex);
}

@GetMapping("/cancel-navi")
public void cancelNavi(){

@GetMapping("/cancel-navi")
public String cancelNavi(@RequestParam("uuid") String uuid){
pedestrianService.cancelNavi(uuid);

return uuid + " 관련 모든 경로 삭제 완료";
}


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.capstone.api.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
public class DistanceInfo {
@JsonProperty("distance")
private String distance;

private int pointIndex;

private String description;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.example.capstone.api.dto;

import lombok.Data;

@Data
public class DistanceResponseDTO {
private DistanceInfo distanceInfo;
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,16 @@ public class Feature {
@JsonProperty("type")
private String type;

/*
geometry.coordinate -> 노드별 위도, 경도
*/
@JsonProperty("geometry")
private Geometry geometry;
private Geometry
geometry;

/*
properties.pointIndex -> 목적지까지 순차적인 노드 번호
*/
@JsonProperty("properties")
private Properties properties;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
public class Geometry {
@JsonProperty("type")
private String type;

@JsonProperty("coordinates")
private Object coordinates;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.capstone.api.dto;

import com.example.capstone.api.model.Route;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;

Expand Down Expand Up @@ -29,5 +30,33 @@ public TmapPedestrianResponseDto filteredPoint() {
features
);
}

public List<Route> toEntities() {
TmapPedestrianResponseDto tmapPedestrianResponseDto = filteredPoint();
List<Feature> features = tmapPedestrianResponseDto.features;

List<Route> routes = new ArrayList<>();

for (Feature feature : features) {
Properties properties = feature.getProperties();
List<Double> coordinates = (List<Double>) feature.getGeometry().getCoordinates();
Route route = new Route();

String lon = String.valueOf(coordinates.getFirst());
route.setLon(lon);

String lat = String.valueOf(coordinates.getLast());
route.setLat(lat);

Long pointIndex = Long.valueOf(properties.getPointIndex());
route.setPointIndex(pointIndex);

String description = properties.getDescription();
route.setDescription(description);

routes.add(route);
}
return routes;
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.example.capstone.api.model;

import com.example.capstone.member.model.Member;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.sql.SQLTransactionRollbackException;

@Getter
@Setter
@Entity
@NoArgsConstructor
public class Route {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long pointIndex;

private String lat;

private String lon;

private String description;

@ManyToOne
@JoinColumn(name = "member_uuid")
private Member member;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.capstone.api.repository;

import com.example.capstone.api.model.Route;
import com.example.capstone.member.model.Member;
import org.springframework.data.domain.Example;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.FluentQuery;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;
import java.util.function.Function;

public interface RouteRepository extends JpaRepository<Route, Long> {

List<Route> findByMemberUuid(final String uuid);
List<Route> findByMember(final Member member);
@Transactional(rollbackFor = Exception.class)
void deleteAllByMemberUuid(final String uuid);
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,8 @@ public TmapGeoCodingResponseDto requestGeoCoding(String address) {
HttpEntity<Object> httpEntity = new HttpEntity<>(headers);

//api 호출
//추후에 바디 변경 필요
var body1 = restTemplate.exchange(uri, HttpMethod.GET, httpEntity, Object.class).getBody();
TmapGeoCodingResponseDto body2 = restTemplate.exchange(uri, HttpMethod.GET, httpEntity, TmapGeoCodingResponseDto.class).getBody();
return body2;
TmapGeoCodingResponseDto body = restTemplate.exchange(uri, HttpMethod.GET, httpEntity, TmapGeoCodingResponseDto.class).getBody();
return body;

}
}
Loading