Java implémente l'affichage de cartes SIG et les fonctions d'interaction des données de formulaire
Introduction :
La technologie SIG (Système d'information géographique) joue un rôle important dans la vie quotidienne, l'urbanisme, la surveillance environnementale et d'autres domaines. Dans les applications SIG, la combinaison des données de formulaire avec l'affichage et l'interaction de la carte peut présenter les données de manière plus intuitive et permettre une interaction utilisateur-carte. Cet article présentera comment utiliser le langage Java pour implémenter l'affichage de cartes SIG et les fonctions interactives des données de formulaire, et donnera des exemples de code pertinents.
1. Configuration de l'environnement :
Avant de commencer, nous devons préparer l'environnement suivant :
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. Affichage et interaction de la carte :
Ensuite, nous utilisons Java pour écrire du code en arrière-plan afin de lire les données dans la base de données et de les renvoyer en première page au format JSON. Un exemple est le suivant :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>
Résumé :
Grâce aux étapes ci-dessus, nous avons implémenté avec succès l'affichage de la carte SIG et la fonction d'interaction des données de formulaire à l'aide du langage Java. Les utilisateurs peuvent voir la carte sur la première page et visualiser les données du formulaire correspondantes via des opérations interactives. Cela facilite l’affichage visuel des données et des opérations de l’utilisateur. Grâce à une amélioration et une optimisation continues, nous pouvons obtenir des fonctions SIG plus riches et servir une plus large gamme d'applications sur le terrain.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!