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); }
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); }