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"
    }
  • 相关阅读:
    java+opencv实现图像灰度化
    java实现高斯平滑
    hdu 3415 单调队列
    POJ 3368 Frequent values 线段树区间合并
    UVA 11795 Mega Man's Mission 状态DP
    UVA 11552 Fewest Flops DP
    UVA 10534 Wavio Sequence DP LIS
    UVA 1424 uvalive 4256 Salesmen 简单DP
    UVA 1099 uvalive 4794 Sharing Chocolate 状态DP
    UVA 1169uvalive 3983 Robotruck 单调队列优化DP
  • 原文地址:https://www.cnblogs.com/unique1319/p/7145296.html
Copyright © 2011-2022 走看看