json生成shp_GeoJson的生成与解析,JSON解析,Java读写geojson,geotools读取shp文件,Geotools中Geometry对象与GeoJson的相互转换...

环境

gt-geojson-14.2.jar,json-simple-1.1.1.jar,jts-1.8.jar

一、wkt格式的geometry转成json格式

public String evaluate(String wkt) {

String ret = null;

try {

Geometry geometry = reader.read(wkt);

StringWriter writer = new StringWriter();

GeometryJSON g = new GeometryJSON();

g.write(geometry, writer);

ret = writer.toString();

} catch (Exception e) {

LOGGER.error(e.getMessage(), e);

}

return ret;

}

二、json格式转wkt格式

public String evaluate(String geoJson) {

String ret = null;

GeometryJSON gjson = new GeometryJSON();

Reader reader = new StringReader(geoJson);

try {

Geometry geometry = gjson.read(reader);

ret = geometry.toText();

} catch (IOException e) {

LOGGER.error(e.getMessage(), e);

}

return ret;

}

三、json格式的数据进行解析

数据格式如下:

{

"_id" : "b454e650cb1a4fa4a2f2bd6899fbfa73",

"bb" : "116.2451019,39.8486099,116.2451019,39.8486099",

"pts" : [{

"1" : 0,

"2" : 39.8486099,

"3" : 116.2451019,

"4" : 0.0,

"5" : 0.0,

"6" : "2012-03-07 14:25:08",

"7" : "2012-03-07 14:25:10",

"8" : "2",

"9" : 0.0,

"10" : 1

}, {

"1" : 1,

"2" : 39.8486099,

"3" : 116.2451019,

"4" : 0.0,

"5" : 0.0,

"6" : "2012-03-07 14:25:16",

"7" : "2012-03-07 14:25:17",

"8" : "1",

"9" : 0.0,

"10" : 1

}, {

"1" : 2,

"2" : 39.8486099,

"3" : 116.2451019,

"4" : -1.0,

"5" : 0.0,

"6" : "2012-03-07 14:25:18",

"7" : "2012-03-07 14:25:20",

"8" : "1",

"9" : 0.0,

"10" : 1

}]

}

获取“_id”值和“bb”属性值(两点的经纬度坐标),获取“pts”属性中第一个标签6的值(起始时间)和最后一个标签7的属性值(终止时间),并根据经纬度计算两点之间的距离,根据起始时间和终止时间计算其时间差,得到每个“_id”的对应的距离和时间差

private final double PI = 3.1415926; //圆周率

private final static double earthRadius = 6371; //地球半径,单位为KM

public static void parseJson(BufferedReader bufferedReader)

throws IOException, ParseException, java.text.ParseException{

String line = ""; //一行一行的形式读取文件

String[] pts6FirstTime =null;//第一个坐标点标签6的时间

String pts6Time ="";

String ptsTime7 = "";

String reslut = ""; //计算最终结果

double betweenTime = 0.0d;//轨迹点之间的时间差,以小时(h)为单位

//longitude1、longitude2、dimension1、dimension2分别为经度坐标和维度坐标

double longitude1 = 0.0d;

double dimension1 = 0.0d;

double longitude2 = 0.0d;

double dimension2 = 0.0d;

//设置时间格式

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//创建json解析对象

JSONParser jsonParser = new JSONParser();

//创建一个distanceAndTime对象

DistanceAndTime distanceAndTime = new DistanceAndTime();

while((line = buff

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值