Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.
소개:
GIS(지리 정보 시스템) 기술은 일상 생활, 도시 계획, 환경 모니터링 및 기타 분야에서 중요한 역할을 합니다. GIS 애플리케이션에서 양식 데이터를 지도 표시 및 상호 작용과 결합하면 데이터를 보다 직관적으로 표시하고 사용자 지도 상호 작용이 가능해집니다. 이 기사에서는 Java 언어를 사용하여 GIS 지도 표시 및 양식 데이터의 대화형 기능을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다.
1. 환경 구성:
시작하기 전에 다음 환경을 준비해야 합니다.
CREATE TABLE form_data ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, address VARCHAR(100) NOT NULL, latitude DOUBLE NOT NULL, longitude DOUBLE NOT NULL );
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class DataImporter { public static void importData(File file) throws IOException { try (FileInputStream fis = new FileInputStream(file); Workbook workbook = new XSSFWorkbook(fis); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/gis_data", "root", "password"); PreparedStatement statement = connection.prepareStatement("INSERT INTO form_data (name, address, latitude, longitude) VALUES (?, ?, ?, ?)")) { Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { if (row.getRowNum() == 0) { continue; // skip header row } Cell nameCell = row.getCell(0); Cell addressCell = row.getCell(1); Cell latitudeCell = row.getCell(2); Cell longitudeCell = row.getCell(3); String name = nameCell.getStringCellValue(); String address = addressCell.getStringCellValue(); double latitude = latitudeCell.getNumericCellValue(); double longitude = longitudeCell.getNumericCellValue(); statement.setString(1, name); statement.setString(2, address); statement.setDouble(3, latitude); statement.setDouble(4, longitude); statement.executeUpdate(); } } } }
3. 지도 표시 및 상호 작용:
다음으로 Java를 사용하여 데이터베이스의 데이터를 읽고 JSON 형식으로 첫 페이지에 반환하는 배경 코드를 작성합니다. 예는 다음과 같습니다.import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/gis") public class GisController { @GetMapping("/formData") public List<FormData> getFormData() { List<FormData> formDataList = new ArrayList<>(); try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/gis_data", "root", "password"); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM form_data")) { while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); String address = resultSet.getString("address"); double latitude = resultSet.getDouble("latitude"); double longitude = resultSet.getDouble("longitude"); FormData formData = new FormData(id, name, address, latitude, longitude); formDataList.add(formData); } } catch (SQLException e) { e.printStackTrace(); } return formDataList; } }
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>GIS Map</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/openlayers/6.3.1/ol.css" type="text/css"/> <style> #map { width: 100%; height: 400px; } </style> </head> <body> <div id="map"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/6.3.1/ol.js" type="text/javascript"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $.get("/gis/formData", function (data) { var features = []; data.forEach(function (formData) { var feature = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([formData.longitude, formData.latitude])), name: formData.name, address: formData.address }); features.push(feature); }); var vectorSource = new ol.source.Vector({ features: features }); var vectorLayer = new ol.layer.Vector({ source: vectorSource, style: new ol.style.Style({ image: new ol.style.Circle({ radius: 6, fill: new ol.style.Fill({ color: 'blue' }) }) }) }); var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer ], view: new ol.View({ center: ol.proj.fromLonLat([0, 0]), zoom: 2 }) }); }); }); </script> </body> </html>
요약:
위 단계를 통해 Java 언어를 사용하여 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 성공적으로 구현했습니다. 사용자는 첫 페이지에서 지도를 볼 수 있으며 대화형 작업을 통해 해당 양식 데이터를 볼 수 있습니다. 이를 통해 데이터 및 사용자 작업을 시각적으로 쉽게 표시할 수 있습니다. 지속적인 개선과 최적화를 통해 더욱 풍부한 GIS 기능을 달성하고 더 넓은 범위의 현장 애플리케이션을 제공할 수 있습니다.위 내용은 Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!