>  기사  >  Java  >  Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.

Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.

王林
王林원래의
2023-08-10 23:25:451146검색

Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.

Java는 GIS 지도 표시 및 양식 데이터의 상호 작용 기능을 구현합니다.

소개:
GIS(지리 정보 시스템) 기술은 일상 생활, 도시 계획, 환경 모니터링 및 기타 분야에서 중요한 역할을 합니다. GIS 애플리케이션에서 양식 데이터를 지도 표시 및 상호 작용과 결합하면 데이터를 보다 직관적으로 표시하고 사용자 지도 상호 작용이 가능해집니다. 이 기사에서는 Java 언어를 사용하여 GIS 지도 표시 및 양식 데이터의 대화형 기능을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다.

1. 환경 구성:
시작하기 전에 다음 환경을 준비해야 합니다.

  1. JDK(Java 개발 환경)
  2. OpenLayers, Leaflet 등과 같은 지도 표시 및 상호 작용 라이브러리; Spring Boot, Spring MVC 등과 같은 웹 프레임워크.
  3. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.