Тип данных SQL Server geography
уже имеет метод EnvelopeCenter
, который, я думаю, должен делать то, что вы хотите.
Таким образом, при условии, что вы можете создать geography
экземпляр, содержащий все ваши очки, вы сможете сделать это напрямую.
Обратите внимание, что тип geography
на самом деле представляет собой тип данных .NET, называемый SqlGeography
, который был бы более естественным типом для использования в вашем коде C #, а не чем реализовать географию логики самостоятельно.
например. Вот пример SQL, просто использующий (усеченную версию) ваши первые две точки:
select geography::STGeomFromText(
'MULTIPOINT((-2.58316 51.418798),(-2.68319 51.419035))',
4326).EnvelopeCenter()
(Если бы вы представили свои образцы данных в виде текст , а не изображение, я бы сделал это для всех пунктов, но мне не нужна практика набора текста, спасибо)