用Jackson取得城市json的经纬度

世界各国及其省份城市经纬度 世界各国及其省份城市经纬度世界-zh世界-en中国 暂时整理为部分地区,如需其它请留言 世界-zh { "阿富汗": [67.709953, 33.93911], "安哥拉": [17.873887, -11.202692], "阿尔巴尼亚": [20.168331, 41.153332], "阿联酋": [53.847818, 23.424076], "阿根... 阅读详情
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;

import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

import util.JtFtConvert;

public class CityPoint {
	
	public static void main(String[] args) {
            // 这里参数是文件夹的路径
             CityPoint.GetFile("json");
	}

	//读取文件目录
	public static void GetFile(String path) { 
			File file = new File(path);
			File[] files = file.listFiles();
			if(files != null &&files.length >0){
				for(File f : files){
					// 判断是不是json文件,这文件只存放json,就循环一遍
					if(f.getName().substring(f.getName().indexOf(".")+1).equals("json")){
						String QPath = path + "/" + f.getName();
						CityPoint.GetDataByJackson(QPath);
					}
					
				}
			}
	}
	
	// 用Jackson获取数据
	public static void GetDataByJackson(String path) { 
    	ObjectMapper objectMapper = null;
        BufferedReader br = null;
        
	    try {
	    	
	    	// 初始配置, maps的类型是根据要取得json格式变化的,{}包含的用Map集合,[]包含的用List集合
	    	objectMapper = new ObjectMapper();
	    	br = new BufferedReader(new FileReader(path));
	    	Map<String, List<Map<String, Map<String, List<Map<String, Object>>>>>> maps =  
					objectMapper.readValue(br, Map.class);
	        DecimalFormat df = new DecimalFormat("0.00");
	        
	    	// 省份标题
	    	path = path.substring(path.lastIndexOf("/")+1, path.indexOf("."));
	    	System.out.println();
			System.out.println("//------------------------" + path + "-------------------------------------");
	        
	        // 循环打印
	        for(int i=0; i<maps.get("features").size(); i++){
	        	
	        	// 每条数据后加逗号,最后一条不加判断
	        	if(i != 0) System.out.println(",");
	        	
	        	// 取数据
	        	Map<String, List<Map<String, Object>>> mapOfProperties = 
	        			maps.get("features").get(i).get("properties");
	        	String lng = ((Object)mapOfProperties.get("cp").get(0)).toString();
	        	String lat = ((Object)mapOfProperties.get("cp").get(1)).toString();
	        	String cityName = ((Object)mapOfProperties.get("name")).toString();
	        	
	        	// 格式化
	        	lng = df.format(Double.parseDouble(lng));
	        	lat = df.format(Double.parseDouble(lat));
	        	if(path.equals("aomen") || path.equals("xianggang") || path.equals("taiwan"))
	        		cityName = new JtFtConvert().convert(cityName, 0); // 繁体转简体
	        	
	        	// 打印
	        	System.out.print("\"" + cityName + "\":[" + lng + "," + lat + "]");
	        }
	    } catch (JsonParseException e) {
	        e.printStackTrace();
	    } catch (JsonMappingException e) {
	        e.printStackTrace();
	    } catch (IOException e) {
	        e.printStackTrace();
	    } finally{
	    	try{
	    		if(br != null){
	    			br.close();
	    		}
	    	} catch(IOException e){
	    		e.printStackTrace();
	    	}
	    }
	}
	
	// 用字符串截取获得数据,很乱,没什么用。
	public static void GetDataByCutout(String path) { 
		ObjectMapper objectMapper = null;
	    BufferedReader br = null;
	    try {
	    	objectMapper = new ObjectMapper();
	    	br = new BufferedReader(new FileReader(path));
	    	path = path.substring(5, path.indexOf("."));
			System.out.println("//------------------------" + path + "-------------------------------------");
	        Map<String, Object> maps = objectMapper.readValue(br, Map.class);
	        
	        String str = maps.get("features").toString();
	        DecimalFormat df = new DecimalFormat("0.00");
	        while(str.indexOf("cp=") != -1){
	        	
	        	int index = str.indexOf("cp=");
	        	str = str.substring(index+4);
	        	String start = str.substring(0,str.indexOf(","));
	        	start = df.format(Double.parseDouble(start));
	        	str = str.substring(str.indexOf(",")+1);
	        	String end = str.substring(0, str.indexOf("]"));
	        	end = df.format(Double.parseDouble(end));
	        	str = str.substring(str.indexOf("name")+5);
	        	String name = str.substring(0,str.indexOf(","));
	        	if(path.equals("aomen") || path.equals("xianggang") || path.equals("taiwan"))
	        		name = new JtFtConvert().convert(name, 0);
	        	
	        	System.out.print("\"" + name + "\":[" + start + "," + end + "]");
		        if(str.indexOf("cp=") != -1) System.out.println(",");
		        else System.out.println();
	        }
	        
	        
	    } catch (JsonParseException e) {

	        e.printStackTrace();

	    } catch (JsonMappingException e) {
	        e.printStackTrace();

	    } catch (IOException e) {

	        e.printStackTrace();

	    }

	}
}

研究Jackson时主要是看hoojo的文章,链接:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html。

jackson的jar包是百度来的,很方便。

json文件从Echarts上载来的。http://echarts.baidu.com/download-map.html。

具体文件位置看图片


JAVA实战:美团商家数据采集与接口调用全解析 本文详细解析了使用JAVA进行美团商家数据采集与接口调用的实战流程。从理解平台规则、环境搭建、核心工具选择,到使用OkHttp构造请求、解析JSON响应,再到分页策略、反爬应对及数据存储与分析,提供了完整的JAVA实战指南,帮助开发者合法合规地获取并利用公开的商家信息。 阅读详情

相关推荐

构建健壮的ThingSpeak Java客户端:从HTTP API封装到生产级SDK实践

在物联网(IoT)应用开发中,设备与云平台的高效、可靠数据交互是核心基础。HTTP REST API作为广泛使用的通信协议,其底层连接管理、数据序列化与异常处理是开发者必须掌握的技术原理。一个设计良好的客户端SDK能将这些底层细节抽象封装,通过连接池、重试机制和配置化管理等技术手段,显著提升开发效率与系统稳定性,降低网络抖动、平台限流等常见问题的影响。这在传感器数据采集、远程监控等物联网应用场景中尤为重要。本文以ThingSpeak平台为例,深入探讨如何将裸漏的HTTP API封装成符合Java工程实践的生

431

根据百度地图ip接口改造的,全国的城市中心经纬度json

{ "北京市": [ "116.395645", "39.929986" ], "上海市": [ "121.487899", "31.249162" ], "天津市": [ "117.210813", "39.14393" ], "重庆市": [...

笙 2605

向量数据库与RAG实战:从语义搜索到电影推荐系统

向量数据库是支撑现代AI应用的关键基础设施,其核心在于将非结构化文本转化为可计算的高维向量,实现语义层面的相似性检索。这一能力源于Embedding模型对语义空间的建模原理,通过对比学习使语义相近的文本在向量空间中距离更近。技术价值体现在为大语言模型(LLM)提供实时、可控、可溯源的外部知识增强能力,有效弥补其静态训练与缺乏私域记忆的缺陷。典型应用场景包括智能客服知识库、企业级文档搜索、个性化内容推荐等。本文以真实电影推荐系统为例,深入解析向量生成、Qdrant选型、混合检索、RAG三阶段管道构建及生产级调

weixin_33979203的博客 404

中国地图经纬度json

[ { "name": "北京市", "log": "116.46", "lat": "39.92", "children": [ { "name": "平谷", "log": "117.1", "lat": "40.13" }, { "name": "密云", "log": "116.85", "lat": "40.37" }, { "name": "顺义", "

weixin_41463944的博客 4534

全国城市经纬度json(不包括县镇)

全国城市经纬度json(不包括县镇)

全国省市区经纬度-完整版.json

全国省市区经纬度, 数据样例 {"全国":{"loc":[116.413384,39.910925]},"北京市":{"loc":[116.413384,39.910925],"市辖区":{"loc":[116.413384,39.910925],"dis":[{"dis_loc":[116.422401,39.934827],"dis_name":"东城区"},{"dis_loc":[116.372514,39.918124],"dis_name":"西城区"}]}}} { "全国": { "loc": [ 116.413384, 39.910925 ] }, "北京市": { "loc": [ 116.413384, 39.910925 ], "市辖区": { "loc": [ 116.413384, 39.910925 ], "dis": [ { "dis_loc": [ 116.422401, 39.934827 ], "dis_name": "东城区" }, { "dis_loc": [ 116.372514, 39.918124 ], "dis_name": "西城区" } ] } } }

一种快速简洁解析JSON数据接口的方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34292287的博客 957

全国各城市经纬度json数据

全国各城市的经纬度的json数据,欢迎大家下载调用,有补充的请私信我

调用高德地图api获取全国行政区域及经纬度

调用高德地图api获取全国行政区域及经纬度,前提需要申请高德地图api key,官方链接:https://lbs.amap.com/api/webservice/guide/api/district

wylove12345678的博客 2238

【最全】全国各省市地区经纬度数据(Json格式)(共收录了3180个城市GPS坐标数据)(收录了全国所有市,区,县 GPS坐标)

(Json格式)全国所有城市经度维度坐标(共收录了3180个城市GPS坐标数据)(收录了全国所有市,区,县 GPS坐标)(包括港澳台)可以直接对应echarts的地图 | 全国所有城市GPS坐标 | 全国所有城市经纬度坐标

【最全】全国各省市地区经纬度数据(Json格式)

全国所有城市经度维度坐标(共收录了3180个城市GPS坐标数据)(收录了全国所有市,区,县 GPS坐标)(包括港澳台)可以直接对应echarts的地图 | 全国所有城市GPS坐标 | 全国所有城市经纬度坐标

Java处理三维GeoJSON的技术实践与应用

三维GeoJSON作为地理空间数据交换的新标准,能够完整表达建筑高度、地形起伏等立体空间信息,广泛应用于智慧城市、地质勘探等领域。Java凭借其强大的类型系统和多线程特性,成为处理三维GeoJSON的理想选择。通过JTS拓扑套件和Jackson库,开发者可以高效构建和序列化三维几何体。在实际项目中,合理设计三维坐标系统、优化内存管理和多线程处理,能显著提升性能。本文结合智慧城市和地质勘探等典型场景,详细介绍了三维GeoJSON的生成、序列化及性能调优技巧,为开发者提供了一套完整的解决方案。

weixin_33393017的博客 277

全国所有城市坐标(Json格式)

全国所有城市坐标(Json格式)可以直接对应echarts的地图

Solon-AI项目集成高德MCP Server:典型异常排查与工程化解决方案

在AI应用开发中,集成外部服务是扩展模型能力的关键环节。Model Context Protocol(MCP)作为一种标准化协议,为大型语言模型提供了统一调用外部工具的能力,极大简化了AI与外部世界的交互。其核心原理在于定义了一套标准化的通信机制,使AI模型能够以语义化的方式发现和调用服务端提供的工具,从而将复杂API封装为模型可理解的“工具箱”。这一技术显著提升了AI应用的开发效率和可扩展性,在智能导航、资源调度、地理信息查询等场景中具有重要价值。然而,在实际工程实践中,尤其是在集成高德地图MCP Ser

csdndownload11123的博客 375

echarts地图json数据,全国个省份主要城市经纬度数据文件

echarts中的map地图中的中国地图,并使中国地图显示效果为轮廓显示

comsol 多物理场仿真流程-以开关柜为例

1、主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模,生成能够导入软件计算的3D模型。将SolidWorks中的模型导入comsol软件中,设置参数进行多物理场耦合仿真。 1、具体步骤 删除高压开关柜中对其内部电磁环境无较大影响的结构,如低压测量柜、断路器内部结构等。 导入模型:将厂家提供的3D模型转化为solidworks结构模型。 修复模型:修复已转化模型中转化错误的部分、修复已转化模型中非实体部分、修复已转化模型中重叠实体部分 化简模型:去除过于...

健忘16的博客 7020

基于JTS与Spring Boot实现高效点面判断:地理围栏本地计算实战

地理空间关系判断是GIS(地理信息系统)中的基础运算,其核心原理在于通过几何算法(如射线法)确定一个坐标点与多边形区域的位置关系。这项技术的核心价值在于为LBS(基于位置的服务)、地域运营和合规风控等场景提供精准、实时的空间分析能力。在工程实践中,相较于依赖外部API或空间数据库,本地几何计算方案凭借其微秒级响应、无网络依赖和高并发的优势,成为高频率、低延迟业务场景的首选。本文聚焦于使用JTS(Java Topology Suite)开源库与Spring Boot框架,构建一套完整的本地点面判断服务,详细拆

416

组态王7.5和SQLsever数据库交互

摘要:本文详细介绍了组态王7.5与SQL Server 2016数据库交互的实现流程,包括建立连接、数据存储与查询操作。主要内容涵盖ODBC数据源配置、数据库表格创建、数据插入及查询功能实现(含日期控件查询)

gsjkwg的博客 1577

Spring-AI-2.0-完整教程

本文是一份完整的Spring AI 2.0开发教程,详细介绍了如何基于智谱AI(GLM)平台实现各类AI功能。教程采用"零跳跃"设计理念,每章内容都建立在前一章基础上,确保学习路径自然连贯。 教程主要内容包括: 从基础对话功能开始,逐步实现流式输出、结构化返回、多轮对话记忆 进阶功能:函数调用、视觉理解、文生图、文生视频 核心AI技术:文本向量化、检索增强生成 综合实战:构建北邮智能问答客服系统 部署总结与全链路复盘 技术栈采用最新版本: Java 25 + Spring Boot 4.1.0 Spring

桃李不言下自成蹊 980

告别踩坑!S32K3xx芯片上RTD-SDK的DFLASH与FEE模块配置全流程(基于S32DS)

本文详细解析了在NXP S32K3xx系列MCU上配置RTD-SDK的DFLASH与FEE模块的全流程,基于S32DS开发环境。从Cache配置、Mem_43_InFls模块设置到MemAcc模块的三种调用模式,提供了实战代码示例和常见问题排查表,帮助开发者高效完成存储管理配置,避免常见错误。

weixin_42653691的博客 268

AIOps智能运维:从数据治理到故障自愈的实践指南

AIOps(智能运维)通过融合人工智能与运维管理,构建了感知-决策-执行的闭环体系。其核心技术包括多维度数据采集、机器学习算法和自动化执行,显著提升了告警治理、故障定位和容量预测的效率。在数据层,全量性、实时性的数据采集是基础,而算法层的异常检测和根因分析则依赖统计方法、孤立森林和LSTM等模型。AIOps尤其适用于处理告警风暴和复杂系统故障,如在电商大促中通过K-Means聚类减少92%的告警量。随着云原生和边缘计算的普及,AIOps正逐步实现与Service Mesh、Serverless等技术的深度集

weixin_30175731的博客 288

【Redis合集-03】Redis常用数据结构选型指南|面试&生产场景全覆盖

面试常被问Redis数据结构怎么选型?这篇一次性讲透常用结构的适用场景:缓存用String、对象字段更新用Hash、队列用List、去重用Set、排行榜用ZSet,选型对照,看完就能用。

记录日常技术学习,分享后端学习笔记 867

脑影像分析软件推荐 | JuSpace

JuSpace是一种允许基于 MRI 测量与核成像衍生估计的跨模态关联的工具包,它涵盖各种神经递质系统,包括多巴胺能、血清素能、去甲肾上腺素能和 GABA(γ-氨基丁酸) 神经传递。JuSpace 由一组 Matlab 功能以及涵盖各种受体系统的 PET 受体图谱组成。

NHKJ_ZF的博客 1707
上一篇: 用mysql写存储过程中遇到的问题
下一篇: 正则表达式语法参考
forward_back
博客等级 码龄10年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值