Устаревшие проекты C# использовали тип System Библиотека .Data.Entity.Spatial и собственная dll SQLServerTypes с типом DbGeography для сохранения этих записей в базе данных.
Я создаю новую утилиту в .NET8 для вставки записей и я не хочу зависеть от собственных DLL, поэтому я пытаюсь использовать для этого NetTopologySuite и объект MultiPoint.
Код: Выделить всё
private MultiPoint CreateMultiPoint(DateTime departureTime, IEnumerable
positions)
{
var coordinates = new List();
var points = new List();
var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326);
foreach (var position in positions)
{
var coordinate = new CoordinateZM(position.Lon, position.Lat, position.Fal,
(position.Svd - departureTime).TotalSeconds);
coordinates.Add(coordinate);
var point = new Point(coordinate) { SRID = 4326 };
points.Add(point);
}
return new MultiPoint(points.ToArray(), geometryFactory);
Код: Выделить всё
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 ("@p0"): The supplied value is not a valid instance of data type geography. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.
Я пробовал множество различных способов построения фабрики геометрии, и ему может понадобиться помощь, поскольку ни один из них, похоже, не работает.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ography-ty