从LINESTRING字符串提取经纬度数据并转换为JSON格式
{
"title": "从LINESTRING字符串提取经纬度数据并转换为JSON格式",
"description": "本文介绍了如何从LINESTRING字符串中提取经纬度数据并将其转换为JSON格式。示例代码使用正则表达式匹配经纬度坐标,并创建LonLatVO对象来存储和输出结果。",
"keywords": "LINESTRING, 经纬度, JSON, 正则表达式, Java",
"content": ""String sql = "SELECT ST_AsText(t.geom) FROM geom_road_segment_t t WHERE t.id = '" + id + '"';"的查询结果为LINESTRING(85.0445540574901 45.6184670972762,85.0151181532015 45.5612849795857)。Listjava\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class Main {\n\n public static void main(String[] args) {\n String sqlResult = \"LINESTRING(85.0445540574901 45.6184670972762,85.0151181532015 45.5612849795857)\";\n List<LonLatVO> locationList = extractLonLat(sqlResult);\n \n System.out.println(locationList);\n }\n \n public static List<LonLatVO> extractLonLat(String sqlResult) {\n List<LonLatVO> locationList = new ArrayList<>();\n \n // 使用正则表达式提取经纬度数据\n Pattern pattern = Pattern.compile("([0-9.]+) ([0-9.]+)");\n Matcher matcher = pattern.matcher(sqlResult);\n \n while (matcher.find()) {\n String jd = matcher.group(1);\n String wd = matcher.group(2);\n \n locationList.add(new LonLatVO(jd, wd));\n }\n \n return locationList;\n }\n}\n\nclass LonLatVO {\n private String jd;\n private String wd;\n \n public LonLatVO(String jd, String wd) {\n this.jd = jd;\n this.wd = wd;\n }\n \n public String getJd() {\n return jd;\n }\n \n public String getWd() {\n return wd;\n }\n \n @Override\n public String toString() {\n return "{ \"jd": \"" + jd + "\", \"wd": \"" + wd + "\" }\";\n }\n}\n\n\n该代码会输出以下结果:\n\n\n[{ \"jd": \"85.0445540574901\", \"wd": \"45.6184670972762\" }, { \"jd": \"85.0151181532015\", \"wd": \"45.5612849795857\" }]\n\n\n请注意,此示例假设查询结果只包含一个线段。如果查询结果包含多个线段,请相应地修改代码以处理该情况。\n
原文地址: https://www.cveoy.top/t/topic/p2jk 著作权归作者所有。请勿转载和采集!