geojson输出

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GeoJsonOutput {

    /**
     * geoJson
     * 包括 features 和 type
     */
    Map<String,Object> geoJson =null;

    /**
     * features
     * 包括 geometry、properties、type
     */
    List<Map<String,Object>> features = null;
    Map<String,Object> feature = null;

    /**
     * geometry
     * 包括 coordinates 和 type
     */
    Map<String,Object> geometry =null;

    /**
     * coordinates
     */
    List<List<Double>> coordinates = null;

    /**
     * properties
     * 包括 color 和 lever
     */
    Map<String,String> properties = null;

    /**
     * coordinate
     */
    List<Double> coordinate = null;

    /**
     * 填充 coordinate
     */
    public List<Double> fillCoordnate(double lon,double lat,double z){
        coordinate = new ArrayList<>();
        coordinate.add(lon);
        coordinate.add(lat);
        coordinate.add(z);
        return coordinate;
    }

    /**
     * 填充properties
     */
    public Map<String,String> fillProperties(String color,String lever){
        properties = new HashMap<String,String>();
        properties.put("color",color);
        properties.put("lever",lever);
        return properties;
    }

    /**
     * 填充 coordinates
     */
    public List<List<Double>> fillCoordinates(List<List<Double>> list){
        coordinates = new ArrayList<List<Double>>();
        for (List coordinate: list) {
            coordinates.add(coordinate);
        }
        return coordinates;
    }

    /**
     * 填充 geometry
     */
    public Map<String,Object> fillGeometry(List<List<Double>> list){
        geometry = new HashMap<>();
        geometry.put("coordinates",this.fillCoordinates(list));
        geometry.put("type","LineString");
        return geometry;
    }

    /**
     * 填充 feature
     */
    public Map<String,Object> fillFeature(List<List<Double>> coordinates,String color,String lever){
        feature = new HashMap<String,Object>();
        feature.put("geometry",this.fillGeometry(coordinates));
        feature.put("properties",this.fillProperties(color,lever));
        feature.put("type","Feature");
        return feature;
    }

    /**
     * 填充 features
     */
    public List<Map<String,Object>> fillFeatures(List<Map<String,Object>> feature){
        features = new ArrayList<>();
        for (Map map: feature) {
            features.add(map);
        }
        return features;
    }

    /**
     * 填充 geoJson
     */
    public Map<String,Object> fillGeoJson(List<Map<String,Object>> feature){
        geoJson = new HashMap<>();
        geoJson.put("features",this.fillFeatures(feature));
        geoJson.put("type","FeatureCollection");
        return geoJson;
    }
}
public void jsonOutPut(Map map) {
        ObjectMapper mapper = new ObjectMapper();
        try{
            mapper.writeValue(new File("D:/geoJsonTest.json"), map);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
public class Test3 {

    public static void main(String[] args){
        GeoJsonOutput go = new GeoJsonOutput();

        /*填充 coordinates*/
        List<List<Double>> coordiantes = new ArrayList<>();
        coordiantes.add(go.fillCoordnate(104.63227074146543,28.769242770389777,0));
        coordiantes.add(go.fillCoordnate(104.64619058834954,28.77423963850202,0));
        coordiantes.add(go.fillCoordnate(104.66260886928977,28.76246130652316,0));

        /*填充 features*/
        List<Map<String,Object>> features = new ArrayList();
        features.add(go.fillFeature(coordiantes,"#FF0000","4"));
        features.add(go.fillFeature(coordiantes,"#00FF00","3"));
        features.add(go.fillFeature(coordiantes,"#FF0000","2"));
        features.add(go.fillFeature(coordiantes,"#00FF00","1"));

        /*填充 geoJson*/
        SiteGeneralImpl sg = new SiteGeneralImpl();
        sg.jsonOutPut(go.fillGeoJson(features));
    }
}

结果:

{
    "features": [
        {
            "geometry": {
                "coordinates": [
                    [
                        104.63227074146543,
                        28.769242770389777,
                        0
                    ],
                    [
                        104.64619058834954,
                        28.77423963850202,
                        0
                    ],
                    [
                        104.66260886928977,
                        28.76246130652316,
                        0
                    ]
                ],
                "type": "LineString"
            },
            "type": "Feature",
            "properties": {
                "color": "#FF0000",
                "lever": "4"
            }
        },
        {
            "geometry": {
                "coordinates": [
                    [
                        104.63227074146543,
                        28.769242770389777,
                        0
                    ],
                    [
                        104.64619058834954,
                        28.77423963850202,
                        0
                    ],
                    [
                        104.66260886928977,
                        28.76246130652316,
                        0
                    ]
                ],
                "type": "LineString"
            },
            "type": "Feature",
            "properties": {
                "color": "#00FF00",
                "lever": "3"
            }
        },
        {
            "geometry": {
                "coordinates": [
                    [
                        104.63227074146543,
                        28.769242770389777,
                        0
                    ],
                    [
                        104.64619058834954,
                        28.77423963850202,
                        0
                    ],
                    [
                        104.66260886928977,
                        28.76246130652316,
                        0
                    ]
                ],
                "type": "LineString"
            },
            "type": "Feature",
            "properties": {
                "color": "#FF0000",
                "lever": "2"
            }
        },
        {
            "geometry": {
                "coordinates": [
                    [
                        104.63227074146543,
                        28.769242770389777,
                        0
                    ],
                    [
                        104.64619058834954,
                        28.77423963850202,
                        0
                    ],
                    [
                        104.66260886928977,
                        28.76246130652316,
                        0
                    ]
                ],
                "type": "LineString"
            },
            "type": "Feature",
            "properties": {
                "color": "#00FF00",
                "lever": "1"
            }
        }
    ],
    "type": "FeatureCollection"
}
时间: 2024-10-11 16:20:21

geojson输出的相关文章

下载行政区划数据

目录 抓取行政区划数据 天地图接口 接口信息 代码 民政部数据 获取全国县级行政区信息 全国县级行政区边界 政府驻地地理位置 代码 抓取行政区划数据 天地图接口 天地图官网都有相关介绍,这里只是简单的搬运一下. 接口说明地址:http://lbs.tianditu.gov.cn/server/administrative.html 接口信息 天地图行政区划API是一类简单的HTTP/HTTPS接口,提供由行政区划地名.行政区划编码查询中心点.轮廓.所属上级行政区划的功能. 请求: http://

解决成本的错误和问题

问题描述 错误 数据收集 根本原因 版本   组件:数据修复           在一个实际成本组织中,(平均,先进先出,后进先出) 一个或更 多的以下情况可能发生: 1.导航到物料成本历史表单上的数量信息,与现有量表单的数量不匹配的记录 2. 一些物料前期已计成本的数量与前面的事务处理历史表单的数量不匹配 3. 所有的库存值报表与事务处理值报表不匹配 4. 存货层次成本更新表单的总数量与现有量数量表单不匹配(仅仅在先进先出/后进先出) 5.这些症状的任何一个意味着 MMT-CQL不匹配或MMT

使用GeoServer导出地图数据GeoJSON并应用

在项目中,需要使用乡镇街道的地图边界,之前一直使用的是百度地图或Echarts地图,其没有这部分行政区的数据,需要在第三方购买数据,其提供的是shp文件 主文件:counties.shp 索引文件:counties.shx dBASE表: ounties.dbf 我使用GeoServer将shp文件导入(文件导入时选择GBK编码),然后再使用GeoServer界面管理中导出数据功能导出为GeoJSON格式 开始使用的GeoServer2.3.8,当导出问KML数据,中文没出现乱码现象,但是导出为

地图组件上的自定义区域叠加层显示 ArcGis + GeoJson

最近参与了一个IOT环境项目,需要对某个城市的某几个区域做环境监控与治理,其中就用到了地图叠加层的功能,粗看很复杂,其实很简单,先来看一下效果,然后再来讲一下如何实现的: 中间的黄色轮廓线包括的几块区域就是通过gis坐标和百度的叠加层来实现的,来简单说一下实现的步骤吧: 首先需要有每块区域的坐标集合,这个主要是由工程队施工人员,在当地采集坐标,采集后会生成相应的文件给到开发人员 这些文件主要为如下: 其中这个红框内的文件是我们最需要的文件,他是一个shp文件,轮廓文件,开发人员需要转换为一个js

shell 格式化输出nginx的编译参数

命令 nginx -V > nginx.txt cat -n nginx.txt  | sed -n '5,18p' | awk '{$1="";print $0}'  | sed 's/^[ ]*//g'  | tr '\n' ',' | sed -n 's/,//gp' | tr " " "\n" 结果 configure arguments: --user=nginx --group=nginx --prefix=/usr/share

python中 将你的名字转化成为二进制并输出

1 name = "吴彦祖" 2 for i in name: 3 i_by = bytes(i, encoding = "utf-8") 4 for i_bin in i_by: 5 i_b = bin(i_bin) 6 print(i_b) 输出结果: 0b10110100 0b10100110 0b10010110 我们来详细解读每个转换步骤:for i in name: 通过for循环获取所有的字符i,共获取了3个字符 i_by = bytes(i, enc

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1

Java小白入门学习笔记demo1输出helloworld

public class Hello{//公共   类     类名  public static void main(String[] args){ //     公共   静态  无返回值 主方法(字符串[] 参数)   System.out.println("helloworld"); //   系统.输出.打印换行(输出内容); // 输出语句,首字母必须大写,println为输出内容后自动换行,print输出内容不换行 }}

6.下面代码会输出什么:

# 下面代码会输出什么: def f(x,li=[]): for i in range(x): li.append(i*i) print(li) f(2) #[0, 1] f(3,[3,2,1]) # [3,2,1,0,1,4] f(3) #[0,1,0,1,4] 此时li是[0,1]