public SqlGeography ScaleDownMultiPolygon(MultiPolygon multiPolygon, double factor) { List <MultiPolygon> shiftedMultiPolygonsAroundTheAxis = GetShiftedMultipolygonsAroundTheAxis(multiPolygon, factor); List <SqlGeography> shiftedSqlGeographies = ConvertToSqlGeographies(shiftedMultiPolygonsAroundTheAxis); var originalSqlGeography = multiPolygon.FromGeoJsonToSqlGeography(); SqlGeography result = originalSqlGeography; foreach (var shiftedSqlGeography in shiftedSqlGeographies) { result = result.STDifference(shiftedSqlGeography); } return(result); }