You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中借助JAK库从KML文件提取LookAt的经纬度数据

用JAK库提取KML中LookAt标签的经纬度

以下是使用JAK(Java API for KML)提取KML文件里<LookAt>标签中经度和纬度的具体实现步骤及代码:

  • 步骤1:引入JAK库依赖
    如果用Maven管理项目,在pom.xml中添加依赖:

    <dependency>
        <groupId>de.micromata.jak</groupId>
        <artifactId>jak-kml</artifactId>
        <version>2.2.0</version> <!-- 使用最新稳定版本 -->
    </dependency>
    
  • 步骤2:加载KML文件并解析
    通过JAK的Kml类加载目标KML文件,然后遍历文档中的Feature,找到包含<LookAt>的元素,或者直接定位LookAt对象。

  • 步骤3:提取经纬度
    从LookAt对象中调用getLongitude()和getLatitude()方法直接获取数值。

完整代码示例

import de.micromata.opengis.kml.v_2_2_0.Kml;
import de.micromata.opengis.kml.v_2_2_0.LookAt;
import de.micromata.opengis.kml.v_2_2_0.Feature;

import java.io.File;
import java.util.List;

public class KmlLookAtExtractor {
    public static void main(String[] args) {
        // 加载目标KML文件
        Kml kml = Kml.unmarshal(new File("path/to/your/target.kml"));
        
        // 获取文档下的所有Feature元素
        List<Feature> features = kml.getFeature().getFeature();
        
        for (Feature feature : features) {
            // 检查当前Feature是否包含LookAt配置
            LookAt lookAt = feature.getLookAt();
            if (lookAt != null) {
                // 提取并打印经纬度
                double longitude = lookAt.getLongitude();
                double latitude = lookAt.getLatitude();
                
                System.out.println("提取到的经度:" + longitude);
                System.out.println("提取到的纬度:" + latitude);
            }
        }
    }
}

补充说明

  • 若<LookAt>直接在<Document>节点下而非Feature内部,可直接通过kml.getFeature().getLookAt()获取,无需遍历Feature。
  • 若KML包含多个<LookAt>标签,可结合feature.getName()等属性筛选目标元素。

内容的提问来源于stack exchange,提问作者AliReza Abbasian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:22:10