ホームページ  >  記事  >  Java  >  JavaはGISマップ表示とフォームデータの対話機能を実装します

JavaはGISマップ表示とフォームデータの対話機能を実装します

王林
王林オリジナル
2023-08-10 23:25:451126ブラウズ

JavaはGISマップ表示とフォームデータの対話機能を実装します

Java は GIS 地図表示とフォーム データの対話機能を実装します

はじめに:
GIS (地理情報システム) 技術は、日常生活、都市計画、および環境モニタリングは他の分野でも重要な役割を果たしています。 GIS アプリケーションでは、フォーム データと地図表示および対話を組み合わせることで、データをより直観的に表示でき、ユーザーと地図の対話が可能になります。この記事では、Java 言語を使用して GIS マップ表示とフォーム データの対話機能を実装する方法を紹介し、関連するコード例を示します。

1. 環境構成:
開始する前に、次の環境を準備する必要があります:

  1. Java 開発環境 (JDK)、
  2. 地図表示とインタラクション ライブラリ (OpenLayers、Leaflet など)、
  3. バックエンド Web フレームワーク (Spring Boot、Spring MVC など)。

2. フォーム データのインポート:
まず、フォーム データをデータベースにインポートする必要があります。 MySQL を例として、「gis_data」という名前のデータベースを作成し、「form_data」という名前のテーブルを作成します。テーブル構造は次のとおりです:

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
);

次に、Excel または CSV ファイルを読み取るための Java クラスを作成します。そしてデータをデータベースに挿入します。例は次のとおりです:

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;
    }
}

次に、マップ表示および対話ライブラリ (OpenLayers など) と jQuery をフロント ページに導入し、対応する JavaScript コードを記述します。例は次のとおりです。

<!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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。