zoukankan      html  css  js  c++  java
  • 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"
    }
  • 相关阅读:
    CSS的学习
    nodejs
    eureka注册中心
    netty的机制
    分布式事务
    spring cloud的基础
    一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
    关于ViewPager高度自适应(随着pager页的高度改变Viewpager的高度)
    ViewPager的使用总结
    Android实现沉浸式状态栏(必须高逼格)
  • 原文地址:https://www.cnblogs.com/unique1319/p/7145296.html
Copyright © 2011-2022 走看看