提问人:Valuator 提问时间:11/11/2023 更新时间:11/11/2023 访问量:20
NetTopologySuite.IO.GeoJSON 反序列化无效的 GeoJSON
NetTopologySuite.IO.GeoJSON deserializing invalid GeoJSON
问:
我们使用 Google Javascript API 将前端中使用的 GeoJSON 转换为存储在数据库中的数据。映射器类用于处理传入的包含 GeoJSON 并从中返回:NetTopologySuite.IO.GeoJSON4STJ
string
FeatureCollection
GeometryFactory geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory();
JsonSerializerOptions options = new JsonSerializerOptions();
options.Converters.Add(new GeoJsonConverterFactory(geometryFactory));
FeatureCollection? features = JsonSerializer.Deserialize<FeatureCollection>(geoJsonString, options);
如果传入的 GeoJSON 包含仅包含单个 Point 的要素(如 LineString 或 Polygon),例如:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.43652826547623,47.64769550647011]]},"properties":{}}]}
抛出:ArgumentException
LineString 中的点数无效(找到 1 - 必须为 0 或 >= 2)
我无法在前端轻松处理这个问题,因为数据可能来自使用此转换器的多个外部来源。我只想忽略任何无效的此类功能。处理它的唯一方法是捕获并返回一个空的功能集合,但我仍然希望反序列化集合中有效的其他功能并包含它们。我在 NTS 选项中没有找到任何可以处理此问题的内容。有吗?ArgumentException
答: 暂无答案
下一个:标记颜色和颜色条在地理图中不匹配
评论