springboot基于GraphHopper实现地理编码代码
时间: 2023-07-11 22:23:29 浏览: 94
springboot解释及代码实现
以下一个使用 Spring Boot 和 GraphHopper 进行地理编码的示例代码:
1. 添加 Maven 依赖
在 `pom.xml` 文件中添加以下 Maven 依赖:
```xml
<dependency>
<groupId>com.graphhopper</groupId>
<artifactId>directions-api-client</artifactId>
<version>3.0</version>
</dependency>
```
2. 编写 Controller
```java
import com.graphhopper.directions.api.client.ApiClient;
import com.graphhopper.directions.api.client.api.GeocodingApi;
import com.graphhopper.directions.api.client.model.GeocodingResponse;
import com.graphhopper.directions.api.client.model.GeocodingResponseList;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GeocodingController {
private final ApiClient apiClient = new ApiClient().setApiKey("YOUR_API_KEY");
@GetMapping("/geocode")
public String geocode(@RequestParam String location) {
GeocodingApi api = new GeocodingApi(apiClient);
try {
GeocodingResponse response = api.geocodeGet(location, false, null, null, null);
if (response.getHits().size() > 0) {
GeocodingResponseList.GeocodingResponseItem item = response.getHits().get(0);
double lat = item.getPoint().getLat();
double lng = item.getPoint().getLng();
return lat + ", " + lng;
} else {
return "No results found";
}
} catch (Exception e) {
e.printStackTrace();
return "Error: " + e.getMessage();
}
}
}
```
请注意,在上面的代码中,您需要将 `YOUR_API_KEY` 替换为您自己的 GraphHopper API 密钥。在实际应用中,最好从配置文件中读取 API 密钥,而不是硬编码在代码中。
阅读全文