Esempio n. 1
0
        private List <Map2DModel> ParseMap2DDataFromLatLngString(string latLngStr)
        {
            List <Map2DModel>    map2DModelList = new List <Map2DModel>();
            List <List <Point> > pointListList  = new List <List <Point> >();

            string[] featurePointStrings = latLngStr.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
            if (featurePointStrings != null)
            {
                List <Point> pointList = new List <Point>();
                pointListList.Add(pointList);
                foreach (string lngLatStr in featurePointStrings)
                {
                    string[] lngLatStrArray = lngLatStr.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries);
                    if (lngLatStrArray == null || lngLatStrArray.Length != 2)
                    {
                        continue;
                    }
                    Point point = new Point()
                    {
                        X = double.Parse(lngLatStrArray[0]), Y = double.Parse(lngLatStrArray[1])
                    };
                    pointList.Add(point);
                }
            }

            Map2DModel map2DModel = MapDataConvertHelper.LngLatPointListToMap2DModel(pointListList);

            map2DModelList.Add(map2DModel);

            return(map2DModelList);
        }
Esempio n. 2
0
        private void BtnLoadMap3D_Click(object sender, RoutedEventArgs e)
        {
            if (_loadMapDataType == LoadMapDataType.Unknown)
            {
                MessageBox.Show("请选择加载文件的类型");
                return;
            }

            if (string.IsNullOrEmpty(_loadFilePath))
            {
                MessageBox.Show("请选择需要加载的文件");
                return;
            }

            string fileStr = File.ReadAllText(_loadFilePath);

            if (string.IsNullOrEmpty(fileStr))
            {
                MessageBox.Show("文件数据为空");
                return;
            }

            GeoJson <GeoJsonGeometry> geoJsonModel = null;

            switch (_loadMapDataType)
            {
            case LoadMapDataType.GeoJson:
                geoJsonModel    = GeoJsonParseHelper.DecodeStandardGeoJson(fileStr);
                _map2DModelList = MapDataConvertHelper.GeoJsonModelToMap2DList(geoJsonModel);
                _map3DModelList = Map2DTo3DData(_map2DModelList);
                break;

            case LoadMapDataType.EncodedGeoJson:
                geoJsonModel    = GeoJsonParseHelper.DecodeGeoJson(fileStr);
                _map2DModelList = MapDataConvertHelper.GeoJsonModelToMap2DList(geoJsonModel);
                _map3DModelList = Map2DTo3DData(_map2DModelList);
                break;

            case LoadMapDataType.Txt:
                _map2DModelList = ParseMap2DDataFromLatLngString(fileStr);
                _map3DModelList = Map2DTo3DData(_map2DModelList);
                break;

            case LoadMapDataType.Map2D:
                _map2DModelList = JsonConvert.DeserializeObject <List <Map2DModel> >(fileStr);
                _map3DModelList = Map2DTo3DData(_map2DModelList);
                break;

            case LoadMapDataType.Map3D:
                _map3DModelList = JsonConvert.DeserializeObject <List <Map3DModel> >(fileStr);
                break;

            default:
                break;
            }

            InitMap3DComponents(_map3DModelList);
        }